返回数组中的最大值

时间:2013-04-04 13:57:38

标签: arrays matlab max

我编写了以下'matlab'代码,该代码应该返回数组中的maximum值:

function m = maxi(a)
maximum = a(1,1);
[m,n]=size(a);
for i=1:m
    for j=1:n
        if a(i,j)>=maximum
            maximum = a(i,j)
        else
            maximum = maximum;
        end
    end
end
m = maximum;
end

这里的情况是返回的结果似乎是每次迭代中的最大数。如何只返回one值,这是最大值?

感谢。

1 个答案:

答案 0 :(得分:7)

要查找数组中的最大值,建议使用内置函数max。请注意,max默认情况下沿数组的第一维操作;要找到整体最大值,您可能因此希望将数组作为向量传递:

overallMax = max(array(:));

实际上,如果性能非常重要,建议不要重新实现内置插件。但是,出于教育目的,逆向工程代码可能很有用。

你的函数运行正常,但我建议你迭代线性索引(类似于你如何将数组转换为上面的向量)。这样它就可以用于任意维度的数组。

function mx = maxi(a)
  mx = a(1);
  for ii = 1:numel(a)
      if a(ii) > mx
         mx = a(ii);
      end
  end