Я переношу некоторый код MATLAB на Numpy. Эта задача включает удаление MEX из некоторого кода на С++ и замену его эквивалентными вызовами на Numpy C-API. Одна из проблем заключается в том, что код MEX обрабатывает входящие данные как упорядоченные по Фортрану, так как MATLAB заказывает свои массивы. С другой стороны, Numpy использует по заказу C.
Заканчивая полностью переписывание кода MEX для упорядочения C, я могу:
- (A) Переупорядочить массивы, которые входят в код C с помощью
.copy('F')
, и изменить порядок тех, которые выходят с помощью.copy('C')
- (B) Выясните, как получить numpy, чтобы "эмулировать" MATLAB, делая все в порядке Fortran от get-go.
Вариант A - в настоящее время реализован - работает отлично, но ужасно неэффективен. Кто-нибудь знает, как сделать вариант B?