Re: [問題] 矩陣中挑某些列出來

看板MATLAB作者 (hate)時間13年前 (2013/01/22 10:54), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《Oxygenair (氧氣)》之銘言: : ※ 引述《Ihatenchu (hate)》之銘言: : : 假設我有個 21x21矩陣 A : : 我要挑七列出來, : : 挑法如下, 第一列一定要挑到。 : : 剩下六列 要從第二列 到二十一列 這二十列中 挑出來, : : 而且要成pair~~ 就是挑到 第二列 就要有第三列 第四列就要有第五列這樣。 : : 總共其實有C(10,3)= 10*9*8/6 =120 種挑法, : : 請問該如何寫出這120個 7x21的矩陣。 : : 感恩~~ : 根據推文的要求 那其實還滿容易的 : 只要把(2,3) (4,5)....(20,21)這10種pair想成index就好 : 想把combination的狀況列出來 以下想法僅供參考 : index_pair = reshape( 2:size( A , 1 ) , 2 , 10 ); : combination = nchoosek( 1:10 , 3 ); : A_pair = zeros( 7 , size( A , 2 ) , size( combination , 1 ) ); : for k = 1:size( combination , 1 ) : selected_row = reshape( index_pair( : , combination( k , : ) ) , 1 , 6 ); : A_pair( : , : , k ) = A( selected_row , : ); : end Error in getA_7_21 (line 11) A_pair(:,:,k) = A(selected_row,:); 其實我看不懂你的code~~ (初學者) 但是它出現error耶 要怎嚜改阿? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.114.93.173

01/22 10:59, , 1F
ㄜ...我已經補充在推文了 我只是忘了把第一個row加進去
01/22 10:59, 1F

01/22 11:01, , 2F
就是selected_row在修正把第一行加進去就好...
01/22 11:01, 2F

01/22 11:02, , 3F
請了解一下code寫法的觀念...不然還是不懂
01/22 11:02, 3F

01/22 11:05, , 4F
got you~
01/22 11:05, 4F

01/22 11:08, , 5F
我已經在原文修正了~可以看一下
01/22 11:08, 5F

01/22 11:13, , 6F
thank you, 我後來也是多寫一行new=[1,selected_row]
01/22 11:13, 6F

01/22 11:13, , 7F
就解決了..感恩~
01/22 11:13, 7F
文章代碼(AID): #1G_VzSSv (MATLAB)
文章代碼(AID): #1G_VzSSv (MATLAB)