看板 MATLAB 關於我們 聯絡資訊
※ 引述《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
Oxygenair:ㄜ...我已經補充在推文了 我只是忘了把第一個row加進去 01/22 10:59
Oxygenair:就是selected_row在修正把第一行加進去就好... 01/22 11:01
Oxygenair:請了解一下code寫法的觀念...不然還是不懂 01/22 11:02
Ihatenchu:got you~ 01/22 11:05
Oxygenair:我已經在原文修正了~可以看一下 01/22 11:08
Ihatenchu:thank you, 我後來也是多寫一行new=[1,selected_row] 01/22 11:13
Ihatenchu:就解決了..感恩~ 01/22 11:13