Python的Matlab等价物';s';减少';功能

Python的Matlab等价物';s';减少';功能,python,matlab,reduce,equivalent,Python,Matlab,Reduce,Equivalent,我有一堆大小相同的矩阵m*n:a,b,c,d,我想从元素上找出它们的最大值,比如: mx = max(a, max(b, max(c, d))); 显然上面的代码不够简洁,我在谷歌上搜索过,没有找到关于N个矩阵的max,或者任何类似python的reduce的matlab函数的帮助。我对matlab了解不多,有吗?对您的输入做一个n*m*4矩阵,然后您可以使用max: M=cat(3,a,b,c,d) max(M,[],3) 带有参数3的cat沿着第三维度连接矩阵,max沿着该维度查找最大值

我有一堆大小相同的矩阵m*n:
a,b,c,d
,我想从元素上找出它们的最大值,比如:

mx = max(a, max(b, max(c, d)));

显然上面的代码不够简洁,我在谷歌上搜索过,没有找到关于N个矩阵的
max
,或者任何类似python的
reduce
的matlab函数的帮助。我对matlab了解不多,有吗?

对您的输入做一个
n*m*4
矩阵,然后您可以使用
max

M=cat(3,a,b,c,d)
max(M,[],3)
带有参数
3
cat
沿着第三维度连接矩阵,
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