2012-09-28 145 views
-3

請注意,下面的代碼是從Matlab文檔獲得的,除了底部。對於i = 1是什麼意思:...在Matlab中意味着什麼?

function B = nway(A,n) 
% Compute average of every N elements of A and put them in B. 

if ((mod(numel(A),n) == 0) && (n>=1 && n<=numel(A))) 

B = ones(1,numel(A)/n); 
    k = 1; 

    for i = 1 : numel(A)/n 
     B(i) = mean(A(k + (0:n-1))); 
     k = k + n; 

    end 

for循環代碼是什麼意思,特別是下面的行?

for i = 1 : numel(A)/n 

和如何做的i工作在B(i)插入呢?

+8

我覺得如果你還沒有嘗試過輸入諸如'1:5','1:sqrt(81)','10:-1:2','12: numel(A)'* etc *在命令行,並開始找出你自己的問題的答案。一旦你明白了這一點,開始嘗試'for i = 1:12'和更復雜的表達式。 –

回答

5

for循環在Matlab被構造爲

for iterationVariable = listOfValues 
    do something 
end 

iterationVariable將就的listOfValues第一列的值在循環的第一次迭代,那麼第二列的值等你可以在計算中使用iterationValue。因此

for i=1:numel(A)/n 

將設置的i1,2,3...值高達"number of elements of A divided by n"值。

B(i) 

是索引操作,即返回數組Bi個元素。

由於@HighPerformanceMark建議,我非常建議在命令行嘗試這些表達式,或者通過出色的Matlab文檔的「入門」部分進行操作。

+0

謝謝喬納斯!非常感激! – Jann

相關問題