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}]。工作区窗口和变量编辑器向我显示了这一点,但我仍然看不到存储在那里的实际值。

如何以人类可读的形式(即美化形式)查看 Matlab 的输出?

4

2 回答 2

3

国家的文件solve

求解方程组时,使用一个输出参数以结构体数组的形式返回解

结果作为结构返回,因此您可以访问每个字段以查看其值。该文档提供了如何执行此操作的示例:

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

这应该导致:

ans =
     4     3     9
    -2    -3     9

或者,您可以通过指定多个输出参数以单独的变量返回解决方案:

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

这将导致:

solx =
     4
    -2

soly =
     3
    -3

solz =
     9
    -9
于 2013-03-28T15:21:33.630 回答
1

在 MATLAB 中查看结构类型的内容并不简单。一种快速的方法是执行以下操作:

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

ans =

  4
 -2


ans =

  3
 -3


ans =

 9
 9

如果您想识别实际的变量名称,我认为您需要编写一个自定义例程来打印您希望它们出现的方式。

于 2013-03-28T15:19:42.583 回答