有效地找到每个单元阵列元素的最大值

Tho*_*oth 1 matlab

我们有一个例子是一个3x5 cell阵列,其中每个元素都是一个矩阵.我们能找到每个单元元素的最大值,即矩阵,并将相应的值存储在新的3x5矩阵中吗?这一切都没有for循环.贝娄有天真的方式.

例:

a = rand(5,6);
b = rand(7,6);
c = rand(7,9);
d = rand(27,19);
CellArray = cell(2,2);
CellArray{1}=a;
CellArray{2}=b;
CellArray{3}=d;
CellArray{4}=c;

MaxResults = nan(size(CellArray));
for i=1:numel(size(CellArray))
    MaxResults(i) = max(max(CellArray{i})); 
end
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jon*_*nas 7

不能保证更高效(直到Matlab决定多线程),但你可以cellfun像这样使用:

MaxResults = cellfun(@(x)max(x(:)), CellArray)
Run Code Online (Sandbox Code Playgroud)