作者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