将两个矩阵合并为最大矩阵

时间:2016-01-15 00:48:52

标签: arrays matlab matrix max

让我说我有

a = [2, 5; 1, 1];
b = [3, 3; 0.5, 9];

我想在结果中得到这个矩阵

maxMat = [3, 5; 1, 9];

我可以使用循环

来做到这一点
[x, y] = size(a);
for i=1:x
   for j=1:y
       maxMat(i, j) = max(a(i,j), b(i,j));
   end
end

有更快的方法吗?和一个更清洁的代码,而不使用循环? 提前谢谢!

2 个答案:

答案 0 :(得分:8)

就像

一样简单
maxMat = max(a,b);

带有两个输入的max函数计算相应条目的最大值。

答案 1 :(得分:3)

a = [2, 5; 1, 1];
b = [3, 3; 0.5, 9];

c = bsxfun(@max,a,b)

% c =
%      3     5
%      1     9

详情请见the language reference for bsxfun;元素二元运算。