作者Ihatenchu (hate)
看板MATLAB
標題Re: [問題] 矩陣中挑某些列出來
時間Tue Jan 22 10:54:17 2013
※ 引述《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
1F:推 Oxygenair:ㄜ...我已經補充在推文了 我只是忘了把第一個row加進去 01/22 10:59
2F:→ Oxygenair:就是selected_row在修正把第一行加進去就好... 01/22 11:01
3F:→ Oxygenair:請了解一下code寫法的觀念...不然還是不懂 01/22 11:02
4F:→ Ihatenchu:got you~ 01/22 11:05
5F:推 Oxygenair:我已經在原文修正了~可以看一下 01/22 11:08
6F:→ Ihatenchu:thank you, 我後來也是多寫一行new=[1,selected_row] 01/22 11:13
7F:→ Ihatenchu:就解決了..感恩~ 01/22 11:13