2013-12-17 24 views
6

在MATLAB我可以发出命令:如何在MATLAB中使用nigbalance选项的eig?

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

为了计算特征值无balance option

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

+2

看起来可能没有选项。有一个[公开票](https://github.com/numpy/numpy/issues/2060)要求这样的能力超过一年。你可能会添加你的支持,并提供一个用例等。 – horchler

+0

@horchler完成。 –

回答

2

NumPy目前无法做到这一点。正如霍勒说的那样,现在已经有一个公开的机票开放了。但是,可以使用外部库来完成。在这里,我写了如何使用Python绑定到NAG库

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

应该可以使用任何接口英特尔MKL等

+0

这听起来像一个很好的选择,你可以请检查你的URL吗?它似乎没有工作。 –

+0

嗨,所以我安装了您的示例所需的所有东西,但运行示例脚本时出现错误。这是我得到的:OSError:/opt/NAG/cll6i23dcl/lib/libnagc_nag.so:undefined symbol:__svml_sin2 –

+0

tuicool网站正在窃取我的内容,据我所知。漫步随地的URL适合我。我在我的例子中使用Windows ..将在今天晚些时候在Linux上尝试它 – WalkingRandomly

3

你LAPACK这样做同样的事情做也可以考虑安装GNU Octave并使用oct2py将其嵌入到Python中。例如,要确定矩阵A的特征值不均衡,

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

功能在八度EIG如果你想平衡矩阵A不执行矩阵A

的平衡,你可以继续写:https://pypi.python.org/pypi/oct2py

安装oct2py之前,您东东:

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

oct2py可以从这个网站下载d以确保SciPy和GNU Octave已经安装。祝你好运!

+0

另一种方式可行(@ WalkingRandomly)。但这非常有趣。这已经接近两年了,但我仍然使用相同的代码,所以我会试一试并回报。谢谢! –

+1

我遇到了和你一样的问题,我想让我的矩阵在使用Python的特征值计算中不平衡。我看到@ WalkingRandomly的帖子,但我的大学没有商业NAG图书馆。然后,我想知道诸如GNU Octave之类的免费软件是否可以这样做,并且它工作得很好。感谢您的意见 –

相关问题