在MATLAB中使用其他矩阵的元素创建矩阵

时间:2012-06-28 18:56:03

标签: matlab matrix conditional-statements

我有两个矩阵ab(列数相同)。我想使用条件创建第三个矩阵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]

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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