如何在MATLAB中使用带有nobalance选项的eig?

时间:2013-12-17 03:42:56

标签: python matlab numpy eigenvector eigenvalue

在MATLAB中我可以发出命令:

[X,L] = eig(A,'nobalance'); 

为了计算没有balance option的特征值。

NumPy中的等效命令是什么?当我运行NumPy版本的eig时,它不会产生与打开nobalance的MATLAB结果相同的结果。

2 个答案:

答案 0 :(得分:3)

您还可以考虑安装GNU Octave并使用oct2py将其嵌入Python中。例如,要确定矩阵A的特征值而不进行平衡,

from oct2py import octave
...
[X,L] = octave.eig(A)

Octave中的函数eig不执行矩阵A的平衡。

如果你想平衡矩阵A,你可以继续写下:

from oct2py import octave
...
A = octave.balance(A)
[X,L] = octave.eig(A)

oct2py可以从以下网站下载:https://pypi.python.org/pypi/oct2py

在安装oct2py之前,您需要确保已经安装了SciPy和GNU Octave。祝你好运!

答案 1 :(得分:2)

NumPy目前无法做到这一点。正如霍克勒所说,现在有一段开放的门票暂时开放。但是,可以使用外部库来完成它。在这里,我编写了如何使用Python绑定到NAG库

http://www.walkingrandomly.com/?p=5303

应该可以使用任何LAPACK接口做类似的事情,例如英特尔MKL等。