我有一堆相同大小的矩阵m * n a, b, c, d
:,我想按元素查找它们的最大值,例如:
mx = max(a, max(b, max(c, d)));
显然,上面的代码不够简洁,我已经在Google上搜索过,并且max
在N个矩阵或任何类似python的matlab函数上都找不到太多帮助reduce
。我对matlab的了解不多,所以有一个吗?
创建一个n*m*4
输入矩阵,然后可以使用max
:
M=cat(3,a,b,c,d)
max(M,[],3)
在cat
与参数3
串接您的矩阵沿第三维,并max
沿着这一维度找到最大。与任意矩阵尺寸兼容:
d=ndims(a)
M=cat(d+1,a,b,c,d)
max(M,[],d+1)
Reduce本身并不存在,通常不需要,因为多维输入或varargin可以解决问题,但是如果需要,实现起来很简单:
function r=reduce(f,varargin)
%example reduce(@max,2,3,4,5)
while numel(varargin)>1
varargin{end-1}=f(varargin{end-1},varargin{end});
varargin(end)=[];
end
r=varargin{1};
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句