【发布时间】:2011-12-16 04:45:17
【问题描述】:
我正在将一些 MATLAB 代码移植到 Numpy。此任务包括从一些 C++ 代码中剥离 MEX,并将其替换为对 Numpy 的 C-API 的等效调用。一个问题是 MEX 代码将传入数据视为 Fortran 排序的,因为这就是 MATLAB 对其数组进行排序的方式。另一方面,Numpy 默认使用 C 排序。
没有完全重写 C 排序的 MEX 代码,我可以:
-
(A) 用
.copy('F')重新排列进入C 代码的数组,用.copy('C')重新排列那些出来的数组 - (B) 从一开始就按照 Fortran 顺序执行所有操作,弄清楚如何让 numpy “模拟” MATLAB。
选项 A(目前已实施)效果很好,但效率极低。有人知道如何使选项 B 起作用吗?
【问题讨论】:
-
@cyborg - 啊!你说得对。不过,我认为我的更清楚一些。希望各位大神善待我。