2013-04-20 65 views
-2

我有以下matlab功能,發現最大的一個矩陣的列數:尋找「的意思是」價值

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

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

我知道功能mean在MATLAB是用來尋找均值價值,但我怎樣才能使用它與我的功能?

謝謝。

回答

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 
+0

@stewman。感謝您的回覆。我想要做的是首先,爲每列找到「max」。然後,對於我所擁有的「最大」值,我想要取其「平均值」。你知道這可以做到嗎?謝謝... – Simplicity 2013-04-20 15:29:51

+0

@ Med-SWEng'mean(max(u,[],1))' – sfstewman 2013-04-20 15:40:22

+0

@stewman。這隻會意味着第一列,不是嗎? – Simplicity 2013-04-20 15:43:02