2012-12-22 20 views
0

如何在matlab的GUI中使用命令'set',它可以保留前面的答案,而不是將其替換爲新的。例如像,當我使用一個for循環,並獲得一個以上的輸出,在正常的MATLAB代碼,將保持所有輸出,並在屏幕打印,如下所示:在matlab中替換命令'set'GUI

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 

的結果將是follwoing :

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} 

那麼有沒有在GUI任何命令,可以讓答案,並把每個答案在一行像fprintf中確實..

謝謝

回答

1

您可以創建一個保存一個新的變量以前的結果和新的結果。

例如:

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

現在當你使用設置(手柄, '串',STR),它會顯示:

1 
2 
3 
4 
5 
6 
+0

非常感謝你的支持,烏爾..但因爲我有for循環,如果在代碼中的語句(我確實添加了與輸出有關的部分),我不知道有多少輸出將是爲了選擇我... – Gloria

+0

我試過你的方法,它的工作原理..再次感謝你......但事情是,每個輸出應該包含在同一行中的2個字符串值..在我的代碼中,它使這兩個值es在兩行中,它使每個輸出的bvalue在單獨的行中...代碼是str = {pc,cc}; str1 = [str; STR1]; 端 端 端 端 集(TEXTA, '字符串',STR1); – Gloria

+1

在Matlab中,你可以連接成一行或兩行: inLine = [str,'',str]; towLines = [str; STR]; 如果我瞭解您的最新評論,您可以用str = {pc,'',cc]替換str = {pc,cc}。這將在兩個字符串之間添加一個空格。 此致敬意。 上午我發現了一個網站,可能會幫助你:[鏈接](http://www.mathworks.com/help/matlab/ref/strings.html) – Muhammad