0

我有 3 组数据,如下所示:

A=[3 1 4 2;7 9 8 3;7 5 3 6;4 1 9 3]

B=[1 0 4 5;7 7 1 3;4 7 6 5;2 2 1 9] 

C=[9 1 3 7;9 6 5 5;1 4 3 2;0 3 2 1]

相互比较时,我需要找出最大值。例如,对于每个集合中的矩阵 [1x1],A=3,B=1,C=9,因此最大数量为 9

对于矩阵 [1x2],最大值=1 等等..

所以

final result =[9 1 4 7;9 9 8 5;7 7 6 6;4 3 9 9]

有什么建议可以解决这个问题吗?谢谢!

4

2 回答 2

5

您可以使用max. 对于有 3 个矩阵的情况,只需使用

max(A, max(B, C))

如果你有三个以上的矩阵,写这些max语句会很累,所以你会cat在取最大值之前使用

max(cat(3, A, B, C, D, E), [], 3)
于 2013-03-12T08:13:13.413 回答
0

你可以这样做:

A=[3 1 4 2;7 9 8 3;7 5 3 6;4 1 9 3];
 A = reshape(A,[1,numel(A)]);
 B=[1 0 4 5;7 7 1 3;4 7 6 5;2 2 1 9] ;
 B = reshape(B,[1,numel(B)]);
 C=[9 1 3 7;9 6 5 5;1 4 3 2;0 3 2 1];
 C = reshape(C,[1,numel(C)]);
 D = [A;B;C];
 for ii = 1:size(D,2)
  res(1,ii) = max(D(:,ii));
 end
 res = reshape(res,[4,4]);
于 2013-03-12T08:12:26.717 回答