-2

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

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

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

我知道该函数mean在 matlab 中用于查找平均值,但是如何将它与我的函数一起使用?

谢谢。

4

1 回答 1

1

两者mean都有max一个更容易使用的矢量化形式:

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
于 2013-04-20T15:16:06.077 回答