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

Arrays 将两个矩阵合并为一个最大矩阵,arrays,matlab,matrix,max,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 有没有更快的办法?一个不使用循环的更干净的代码? 提前谢谢 a = [2, 5; 1, 1]; b = [3, 3; 0

假设我有

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
有没有更快的办法?一个不使用循环的更干净的代码? 提前谢谢

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

c = bsxfun(@max,a,b)

% c =
%      3     5
%      1     9
有关详细信息,请参阅;逐元素二进制操作

有关详细信息,请参阅;逐元素二进制操作。

它非常简单

maxMat = max(a,b);
有两个输入的函数计算对应项的最大值。

它非常简单

maxMat = max(a,b);

带有两个输入的函数计算对应项的最大值。

bsxfun
通常非常有用,但当两个数组具有相同的值时,您不需要它size@LuisMendo你说得对,我直接选择了更大的枪。谢谢你的反馈
bsxfun
通常非常有用,但当两个数组具有相同的属性时,您不需要它size@LuisMendo你说得对,我直接选择了更大的枪。谢谢你的反馈!更简单的解决方案+1.更简单的解决方案+1.