1

私は2つの行列ab(列の数が等しい)を持っています。条件を使用して 3 番目のマトリックスを作成したいc:

たとえば、私は持っています:

a = [1  2  3  4  1  2  3  4  1  2  3  4; 
     1  1  1  1  2  2  2  2  3  3  3  3]

b = [5  6  7  8  9  10 11 12 13 14 15 16;    
     17 18 19 20 21 22 23 24 25 26 27 28;    
     29 30 31 32 33 34 35 36 37 38 39 40]

条件は:a(2, :) == 2であるため、結果の行列は次のようになります。

c = [1 2 3 4;
     2 2 2 2;
     9 10 11 12;
     21 22 23 24;
     33 34 35 36]
4

2 に答える 2

5

これを試して

%With your a and b

cols = a(2,:) == 2;
c = [a(:,cols) ; b(:,cols)];

c =

 1     2     3     4
 2     2     2     2
 9    10    11    12
21    22    23    24
33    34    35    36
于 2012-06-28T19:14:02.563 に答える
0

これがうまくいくはずです。おそらく、それを行うための最良かつ最も効率的な方法ではありません。

a=[1 2 3 4 1 2 3 4 1 2 3 4;  
   1 1 1 1 2 2 2 2 3 3 3 3];

b=[5 6 7 8 9 10 11 12 13 14 15 16;     
  17 18 19 20 21 22 23 24 25 26 27 28;     
  29 30 31 32 33 34 35 36 37 38 39 40];

truthtable = a(2,:)==2;
c = []
for idx = 1:length(truthtable)
    if truthtable(idx) == 1
       c(:,end+1) = [a(:,idx);b(:,idx)];
    end
end
于 2012-06-28T19:19:38.280 に答える