stream
はい、 IanH によって提案されているように、アクセスまたはdirect
アクセスのいずれかを使用して、バイナリ ファイルを書き込むことができます。
integer :: reclen
real(kind=kind(0.0d0)),dimension(256,256,256) :: dense
inquire(iolength=reclen)dense ! Inquire record length of the array dense
open(unit=8,file='test.dat',& ! Binary file, direct access
form='unformatted',access='direct',recl=reclen)
write(unit=8,rec=1)dense ! Write array into first record
close(unit=8)
end
ステートメントでaccess
属性を指定しないと、ファイルはモードで開かれます。これは、レコード長に関する情報を含む各レコードにパディングが追加されるため、読み取りに不便な場合があります。accessを使用すると、レコード長を明示的に指定できます。この場合、書き込まれるファイルのサイズは正確に になります。したがって、配列の順序とエンディアンを知っていると仮定すると、MATLAB スクリプトから読み取ることができます。open
sequential
direct
8*256^3