找到“均值”值

时间:2013-04-20 15:07:36

标签: matlab matrix mean

我有以下matlab函数,找到矩阵中多列的最大值:

function m = maximum(u)
[row col] = size(u);

for i=1:col
    m(i) = max(u(:,i))
end
end

我知道在matlab中使用函数mean来查找平均值,但是如何在函数中使用它?

感谢。

1 个答案:

答案 0 :(得分:1)

meanmax都有一个更易于使用的矢量化形式:

col_max  = max(u,[],1);  % max of matrix along 1st dimension (max of column)
col_mean = mean(u,1);    % mean of matrix along 1st dimension (mean of column)

顺便说一句,std和许多其他函数具有相似的自动矢量化:

col_std = std(u,0,1);    % standard deviation, normalized by N-1
                         % , of first dimension (column s.d.)

使用Matlab的内置矢量化版本通常更容易。它们不容易出错,并且对于像这样的简单操作通常具有更好的性能。但是,如果你想把它写成一个循环:

function m = column_mean(u)
[row col] = size(u);

for i=1:col
    m(i) = mean(u(:,i));   % <--- replaced max with mean
end
end