Если у меня есть матрица Matlab (n,3)
, которая соответствует координатам x
, y
, z
, как я смогу взять эту матрицу из Matlab и перевести ее в формат fortran 90?
Я попытался сохранить переменную из Matlab, а затем выполнить:
implicit none
double precision coord(22323,3)
open(unit=11,file='coord.dat',access='stream',form='unformatted')
read(11) coord
end program kal
Но я получаю точку останова триггера в read(11) coord
. Я также пытался сохранить его как файл .bin
и столкнулся с той же проблемой.
Просто для ясности, я не говорю об использовании mex
, я просто пытаюсь передать данные в переменную в фортране.
ознакомьтесь с документацией от Matlab: ссылка.
Возможно, измерьте его как (2,3) и запишите результаты, работающие через «поток; и «прямой» и т. д.?
В общем, это может быть сложно с двоичным файлом, если только в Matlab нет специальной функции для записи файлов, совместимых с Fortran. Я бы просто написал это в текстовый файл, разделенный пробелами. Затем вам нужно прокрутить файл, например
open(unit=11,file='coord.dat')
do i = 1,22323
read(11) coord(i,:)
enddo
close(11)
Я не думаю, что использование текстового файла создаст большие накладные расходы для такого объема данных, если вы не будете делать это очень много раз.
Yuu также должен показать нам ваш код экспорта Matlab и содержимое файла данных.