2017-03-15 72 views
0

我想創建一個數組,每次執行循環時都可以存儲輸出。我認爲這個問題是因爲在每一次新的迭代中,數字從頭開始計數,所以它只存儲最後一次迭代!在每次迭代中,輸出是array(7x3),所以總共我必須有(28,3)。但是我嘗試了很多,並且除了最後7行之外,我都得到了一個全部爲零的ARRAY (28,3)。 非常感謝您Matlab,將輸出保存在數組中,循環

你可以看到下面的代碼:

for t=1:ncell % in my case I have 4 cells 
    ti=sort(T,2)    
    tt= sort(Cell{t}.ExBot,2) 
    tq= sort(Cell{t}.ExTop,2) 
    te= sort(Cell{t}.ExBT,2) 
    %k=0 
    z=0 
    cc=[] 
    %%%%% for exbottom 
    I=ones(size(ti,1),1); 
    for j=1:size(tt,1) 
     for i=1:size(ti,1) 
      if tt(j,:)==ti(i,:) 
       k=k+1 ; 
       %c(k,:)=[ti(j,:), ti(j+1,:)] 
       I(i)=0; 

       cc(k,:)=Y(i,:); 
       cc(size(tt,1)+1,:)=cc(1,:) 




      else 
      end 

     end 


    end 

end 
+0

什麼是'k'的在循環結束時的價值? – Rotem

+2

如果您想獲得可驗證的答案,請發佈缺少的變量,如「T」和「Cell」。確保你發佈的代碼是可執行的。 – Rotem

+0

調試代碼,在「if ..」 –

回答

0

儘管在評論中提到,從你提供的信息,更多信息會有所幫助,問題很可能出在設置CC在開始處理每個單元格時清空。

cc=[]; 

在退出最外層循環時,您只會得到最後一次迭代的結果。

相關提示您可能需要使用isequalall爲載體的比較,即if isequal(tt(j,:),ti(i,:))