我一直在用 Python 工作,但现在我不得不和一个在 Matlab 工作的同事分享一个函数。由于事情很复杂,调用编译的 C 代码等。我认为从 Matlab 调用 Python 代码更容易。
这条线之前的一切似乎都很好:
points = np.random.multivariate_normal(means, correlation, nSamples)
我得到错误:
Intel MKL ERROR: Parameter 12 was incorrect on entry to DGBBRDM.
Intel MKL ERROR: Parameter 10 was incorrect on entry to DGESDD.
init_gesdd failed init
并且执行顺利进行,点是 zeroes 的数组。
当然,当直接运行 Python 代码时(来自同一个 conda env),我得到了多元正态样本。
四处搜索,我只找到提到代码编译方式、链接方式以及可能是 C 或 Fortran 接口的解决方案。在这里我没有编译任何东西,我不明白为什么中间的 Matlab 步骤会弄乱 numpy 使用的库。
我在 Anaconda 指南 上找到了一些相关的东西,但似乎是特定于 Windows 的,并且提到了与 Matlab 不同的软件,所以我什至不确定是否是同一个问题。
一个(也许)类似问题的答案建议
conda config --add channels intel
conda update --all
但这也没有帮助。
总的来说,与同事共享某些功能似乎不是一种方便的方式....