Re: [討論] 矩陣排列組合

看板MATLAB作者 (橋)時間10年前 (2013/09/10 10:08), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

09/10 20:44, , 1F
高明,只看出為2進位形式,但不知如何組合。
09/10 20:44, 1F

09/10 20:46, , 2F
另外請問~t2代表意義?只能用在 0 1 這種矩陣?
09/10 20:46, 2F

09/10 20:52, , 3F
~為邏輯運算not
09/10 20:52, 3F
文章代碼(AID): #1IBdyS0V (MATLAB)
文章代碼(AID): #1IBdyS0V (MATLAB)