2013-03-28 32 views
0
syms x y z; 
solve(x==y+1, y^2==z,z==9) 

ans = 

x: [2x1 sym] 
y: [2x1 sym] 
z: [2x1 sym] 

現在我想看到像Mathematica輸出{{x->-2,y->-3,z->9},{x->4,y->3,z->9}}Solve[{x == y + 1, y^2 == z, z == 9}, {x, y, z}]的結果。工作區窗口和變量編輯器會顯示this,但我仍然無法看到存儲在那裏的實際值。美化Matlab的輸出又名人類可讀形式的輸出?

我怎樣才能看到Matlab的輸出在人類可讀的形式又名美化形式?

回答

3

solve狀態的文檔:

在求解方程系統中,使用一個輸出參數在一個結構陣列

結果返回作爲的形式返回的解決方案結構,所以你可以訪問每個字段來查看它的值。文檔帶來了如何做到這一點的例子:

S = solve(x==y+1, y^2==z, z==9); 
[S.x, S.y, S.z] 

這將導致:

[solx, soly, solz] = solve(x==y+1, y^2==z, z==9) 

ans = 
    4  3  9 
    -2 -3  9 

或者,您也可以通過指定多個輸出參數返回不同的變量的解決方案

,這將導致:

solx = 
    4 
    -2 

soly = 
    3 
    -3 

solz = 
    9 
    -9 
+1

謝謝,不知怎的,跳過手冊中的部分 - 幸運的是現在獲得比手動更深入的答案:) – hhh

1

在MATLAB中查看結構類型的內容並不簡單。一個快速的方法是做這樣的事情:如果你想找出實際的變量名

r=struct2cell(solve(x==y+1, y^2==z,z==9)); 
r{:} 

ans = 

    4 
-2 


ans = 

    3 
-3 


ans = 

9 
9 

,我認爲你需要編寫自定義例程來打印他們你想如何他們出現。

+0

有趣的,在手冊中沒有提及的方法 - 也許在未來有用,但另一種方法看起來更簡單,無論使用+1還是很好的嘗試。 – hhh