将 matlab 矩阵转换为 Fortran 90
Converting matlab matrix to fortran 90
如果我有一个对应于 x
、y
、z
坐标的 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)
我认为使用文本文件不会为这些数据量产生太多开销,除非您多次这样做。
如果我有一个对应于 x
、y
、z
坐标的 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)
我认为使用文本文件不会为这些数据量产生太多开销,除非您多次这样做。