使用matlabFunction返回符号特征值

时间:2018-04-30 00:04:04

标签: matlab anonymous-function

由于matlabFunction只能生成一个输出参数,我如何使用它为matlab函数的 second 参数创建符号表达式?例如

 B = sym('b',[2,2]);
 [Q,Lambda]  = eig(B)

将返回B和

的特征向量和特征值

Lambda = eig(B)

只返回特征值。

Q = matlabFunction('eig(B)');

返回一个匿名函数,只给出B的特征值,但是如何说服matlabFunction返回第一个两个参数,从而返回特征向量?我想有一些巧妙地使用deal函数,但我无法弄明白。谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了symfun,它解决了我的问题

B = sym('b_%d%d',[2,2]);
[Q,Lambda]  = eig(B);
Qfun        = simplify(symfun(Q,[B(1,1),B(1,2),B(2,1),B(2,2)]));
Lfun        = diag(symfun(Lambda,[B(1,1),B(1,2),B(2,1),B(2,2)]));