将 matlab 矩阵转换为 Fortran 90

Converting matlab matrix to fortran 90

如果我有一个对应于 xyz 坐标的 matlab (n,3) 矩阵,我将如何从 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 我只是想将数据传输到 fortran 中的变量。

一般来说,二进制文件很难做到这一点,除非 Matlab 具有编写 Fortran 兼容文件的特定功能。我会把它写到一个 space 分隔的文本文件中。然后你需要像

一样遍历​​文件
open(unit=11,file='coord.dat')
do i = 1,22323
  read(11) coord(i,:)
enddo
close(11)

我认为使用文本文件不会为这些数据量产生太多开销,除非您多次这样做。