从每个集合中查找最大值

时间:2013-03-12 07:57:20

标签: matlab matrix max

我有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]

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

2 个答案:

答案 0 :(得分:5)

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

max(A, max(B, C))

如果您有三个以上的矩阵,那么编写max个语句可能会让您感到疲惫,因此在采用最大值之前您将使用cat

max(cat(3, A, B, C, D, E), [], 3)

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