作者bridge23 (桥)
看板MATLAB
标题Re: [讨论] 矩阵排列组合
时间Tue Sep 10 10:08:25 2013
※ 引述《whale0821 (DorisTsai)》之铭言:
: 想请问关於一个矩阵的问题
: 举例
: 若有两个矩阵为
: A=[1 2 3]
: B=[4 5 6]
: 想组合成
: C=[1 2 3;
: 1 2 6;
: 1 5 3;
: 1 5 6;
: 4 2 3;
: 4 2 6;
: 4 5 3;
: 4 5 6;]
: 8种排列组合,
: 第一个位置只有1,4 两个选择
: 第二个位置只有2,5 两个选择
: ...以次类推
: 请问有比较快的指令或是怎麽写回圈比较好呢?
: 如果矩阵皆是1*n的话
: 谢谢
提供一些想法
a=[1 2 3];
b=[4 5 6];
N=length(a); % 确定矩阵长度
t1=0:2^N-1; % 确定组合数 以3为例 共8中组合 为0~7
t2=de2bi(t1,'left-msb'); % 十进位转2进位 如3 => [0 1 1]
a2=repmat(a,2^N,1);
b2=repmat(b,2^N,1); % 将矩阵重复与组合数相同
c=a2.*~t2+b2.*t2
得到结果
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.71.217.252
1F:推 s123123sam:高明,只看出为2进位形式,但不知如何组合。 09/10 20:44
2F:→ s123123sam:另外请问~t2代表意义?只能用在 0 1 这种矩阵? 09/10 20:46
3F:→ ejialan:~为逻辑运算not 09/10 20:52