作者Oxygenair (氧气)
看板MATLAB
标题Re: [问题] 矩阵中挑某些列出来
时间Tue Jan 22 10:29:01 2013
※ 引述《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 = [ 1 , reshape( index_pair(:,combination( k , : ) ),1,6 ) ];
A_pair( : , : , k ) = A( selected_row , : );
end
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.127.59
1F:推 Ihatenchu:thank you 01/22 10:39
2F:→ Oxygenair:喔...我忘了把第一个row加进去了~请自行注意一下 01/22 10:43
※ 编辑: Oxygenair 来自: 140.113.127.59 (01/22 11:07)