小编Cry*_*tal的帖子

MATLAB/Octave corr和Python numpy.correlate有什么区别?

我正在尝试使用NumPy 1.8.0和Python 2.7.3将MATLAB/Octave程序移植到Python.我已经使用这个参考作为帮助将MATLAB函数转换为NumPy方法取得了巨大成功,直到我想要计算两个矩阵之间的相关性.

第一个矩阵是40000x25浮点数,第二个矩阵是40000x1个整数.在Octave中,我使用该语句corr(a,b)并获得一个25x1的浮点矩阵.在NumPy(numpy.correlate(a,b))中尝试相应的方法会产生错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_1a9aa5a_20130415-py2.7-macosx-10.8-intel.egg/numpy/core/numeric.py", line 751, in correlate
  return multiarray.correlate2(a,v,mode)
ValueError: object too deep for desired array
Run Code Online (Sandbox Code Playgroud)

如果我更改代码来计算每列的相关性,我可以让它工作a,如下所示:

for i in range(25):
    c2[i] = numpy.correlate(a[:,i], b)
Run Code Online (Sandbox Code Playgroud)

但是,c2数组中的值与Octave的输出不同.Octave返回一个25x1的浮点矩阵,小于1.我从NumPy得到的值是-270到900之间的浮点数.

我试图了解这两种算法在引擎盖下做了什么但却失败了.有人可以指出我的逻辑失败吗?

python matlab numpy octave correlation

6
推荐指数
1
解决办法
3678
查看次数

安装VISA和PyVisa后,找不到VISA模块

我使用的是Mac OS X v10.8.5 (Mountain Lion)。我已经安装了 NI-VISA 5.4 和 PyVisa 1.5。当我尝试“进口签证”时,我得到以下回溯:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named visa
Run Code Online (Sandbox Code Playgroud)

打印 sys.path 在列表中显示:

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyVISA-1.5.dev0.dev-py2.7.egg
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个:

import pyvisa
from pyvisa.vpp43 import visa_library
visa_library.load_library("/Library/Frameworks/VISA.framework/VISA")
import visa
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误。

为什么找不到模块?我缺少什么?

更新:我意识到 PyVisa 1.5 是一个开发版本,所以我安装了 PyVisa 1.4(我尝试了两个MacPort,只是下载了 tarball 并手动安装)。我仍然遇到同样的错误。

python visa pyvisa

5
推荐指数
0
解决办法
1万
查看次数

标签 统计

python ×2

correlation ×1

matlab ×1

numpy ×1

octave ×1

pyvisa ×1

visa ×1