0

matlab の GUI でコマンド「set」を使用して、以前の回答を保持し、新しい回答に置き換えないようにする方法を教えてください。たとえば、for ループを使用して複数の出力を取得すると、通常の matlab コードではすべての出力が保持され、次のように画面に出力されます。

for i=2:length(contextt)
if ~isequal(co1,co2)
if strcmp(q,pc) || ~ismember(tt1(length(tt1)),tt3)
       fprintf('RKC = { %s , %s }\n',pc,cc)

   set(textA,'string',['RKC = {',pc ,',', cc,'}']);            

end
end
end

結果は次のようになります。

 answer = { a0.b0.d6 , a0.c0 }
 answer = { a0.c0 , a0.c0.d5 }
 answer = { a0.c1.b2.d13 , a0.c1.c3 }

しかし、GUIバージョンでは、次のように入力すると:

set(textA,'string',['answer = {',x ,',', m,'}']); 

最後の答えだけが得られます。これは、for ループが始まるたびに答えを更新することを意味します。

 answer={a0.d2.c2 , a0.d2.c2.d10}

fprintfのように、回答を保持して各回答を1行に入れることができるGUIのコマンドはありますか..

ありがとうございました

4

1 に答える 1

1

以前の結果と新しい結果を保存する新しい変数を作成できます。

例えば:

str='';
for i=1:6
str=[str; num2str(i)];
end

set(handle,'string',str) を使用すると、次のように表示されます。

1
2
3
4
5
6
于 2012-12-22T14:02:45.013 に答える