2017-03-15 11 views
0

ループを実行するたびに出力を格納できる配列を作成したいと思います。私は問題は、毎回の新しい反復では、最初から数え始めて、最後の反復のみを保存するからです!各反復では、出力はarray(7x3)なので、合計で(28,3)を持っていなければなりません。しかし、私は多くを試してみました。ARRAY (28,3)はすべて最後の7行を除いて0です。 あなたは以下のコードを参照することができますあなたは非常に多くの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=[]; 

最も外側のループを終了すると、最後の繰り返しの結果のみが表示されます。

あなたがベクトルの比較のために isequalまたは allを使用したい場合があり、関連ノートで

すなわちif isequal(tt(j,:),ti(i,:))

関連する問題