2015-09-03 28 views
0

請參閱我的腳本在這裏:爲什麼計算增量不起作用?

T = importdata('data_jana.xls'); 

result = cell(1, size(T,2)); 
for icol = 1:size(T,2); 
    nzeros = 0; 
    delta = 0; 
    deltas = []; 
    for el = T(:, icol); 
     if el==0 
      nzeros = nzeros + 1; 
      if nzeros==5 
       deltas = [deltas, delta]; 
       delta = 0; 
      end 
     else 
      delta = delta + el; 
      nzeros = 0; 

     end 
    end 
    if nzeros<5 
     deltas = [deltas, delta]; 
     delta = 0; 
    end 
    disp(deltas); 
    result{icol} = deltas; 
end 

我不明白爲什麼增量不使用這個腳本計算...有人能幫助我嗎?謝謝。我想要什麼

恩例如:

col1= [0.2 , 0.2 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0.2 , 0.2] 
result_col1= [1.0, 0.6, 1.0]. 
+1

w ^帽子是目前的結果?你期待什麼結果? –

+0

在我的結果文件中,我只導入了數據。我需要有連續值的總和遵守這個規則「如果你有五個或更多的0連續,你停止計算增量,如果你少於五個0,你繼續」。 –

+0

您可以給出一個或兩個輸入數組「T」的示例,以及在腳本運行之後您期望'result'數組保存的內容嗎?例如,如果'T = [1,3,4,2,0,0,0,3,0,2,0,0,0,0,0,5,9,10]應該產生什麼結果, 「'? –

回答

0

你遍歷el不正確。

替換:

for el = T(:, icol); 

與這兩條線:

for r = 1:numel(T(:, icol)) 
    el = T(r, icol); 

使用

T = [0.2 , 0.2 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0.2 , 0.2].'; 

我得到

>> result 
result = 
{ 
    [1,1] = 

    1.00000 0.60000 1.00000 

} 
>> result{1} 
ans = 

    1.00000 0.60000 1.00000 
+0

是的,它的工作原理。非常感謝@beaker。 –

相關問題