次のmatlab
関数があります。マトリックス内の列数の最大値を見つけます。
function m = maximum(u)
[row col] = size(u);
for i=1:col
m(i) = max(u(:,i))
end
end
関数が平均値を見つけるために matlab で使用されていることは知っていますが、関数mean
でどのように使用できますか?
ありがとう。
と の両方が、はるかに使いやすいベクトル化された形式を持っています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