我正在将一些MATLAB代码移植到Numpy。这个任务包括从一些C++代码中剥离MEX并用等效的Numpy C-API调用替换它。一个问题是,MEX代码将传入的数据视为Fortran顺序,因为这是MATLAB对其数组进行排序的方式。另一方面,Numpy默认使用C顺序。
除了完全重写MEX代码以适应C顺序外,我可以:
- (A) 使用
.copy('F')
重新排序进入C代码的数组,并使用.copy('C')
重排出来的数组 - (B) 弄清楚如何让numpy通过一开始就使用Fortran顺序来“模拟”MATLAB
目前实施的A选项运行良好,但效率极低。有人知道如何使选项B工作吗?