2011-02-13 40 views
0

Hey guyz。可以幫助我嗎?顯示字符串的問題

if size(cost,1) == 2 

     A = (4*Pdt*cost(1,3)*cost(2,3)) + 2*(cost(1,2)*cost(2,3))+(cost(1,3)*cost(2,2)); 
     B = 2*(cost(2,3)+cost(1,3)); 
     lambda = num2str(A ./ B); 
     set(handles.answer1_staticText,'String', lambda); 
     P1 = (lambda - cost(1,2))./(2*cost(1,3)); 
     P2 = (lambda - cost(2,2))./(2*cost(2,3)); 
     PT = mat2str(P1 + P2); 
     set(handles.answer2_staticText,'String', PT); 
     guidata(hObject, handles); 
end 

從上面的編碼,答案變成了這個樣子:

[11.75 11.25 11.25 11.75 10.75 11.5 12.75 12.75 13] 

我的問題是我要顯示我在這樣的靜態文本框答案:

P1 = (%answer for P1) 

P2 = (%answer for P2) 

P TOTAL = (%answer for PT) 

燦任何人都可以幫我編碼?

+0

你需要確保的是,最終的結果是一個* *標量,而不是* *矩陣。 – 2011-02-13 17:40:02

+4

你的問題有錯誤的標題。 – Nishant 2011-02-13 17:41:18

回答

0

您已將lambda轉換爲字符串(使用num2str),因此P1等的計算會產生意想不到的結果。

最好只在顯示步驟中轉換爲字符串,所以這些事故不會發生。

試試這個:

if size(cost,1) == 2 

     A = (4*Pdt*cost(1,3)*cost(2,3)) + 2*(cost(1,2)*cost(2,3))+(cost(1,3)*cost(2,2)); 
     B = 2*(cost(2,3)+cost(1,3)); 
     lambda = A ./ B; 
     set(handles.answer1_staticText,'String', num2str(lambda)); 
     P1 = (lambda - cost(1,2))./(2*cost(1,3)); 
     P2 = (lambda - cost(2,2))./(2*cost(2,3)); 
     PT = P1 + P2; 
     set(handles.answer2_staticText,'String', num2str(PT)); 
     guidata(hObject, handles); 
end