Я хочу прочитать массив значений двойной точности, записанных в двоичном файле Matlab, в код в Fortran (компилятор gfortran), однако мой код для чтения не работает. Не могли бы вы показать мне правильный способ сделать это?Как читать бинарный файл, написанный Matlab в Фортране?
Вот мой код Matlab, который работает.
a=[0.6557 0.0357 0.8491 0.9340 0.6787];
fid=fopen('ft1.bin','w');
fwrite(fid,a,'double');
fclose('all');
fid=fopen('ft1.bin','r');
a2=fread(fid,5,'double');
fclose('all');
a2
Вот мой Fortran, код, который возвращает ошибку при попытке прочитать файл ft1.bin
program code1
implicit none
double precision, dimension(5) :: a2
integer :: i
open(1,FILE="ft1.bin",FORM='UNFORMATTED',ACTION='READ')
read(1) a2
close(1)
print *, a2
end program code1
Когда я пытаюсь запустить его,
gfortran code1.f90 -o bb1
./bb1
At line 8 of file code1.f90 (unit = 1, file = 'ft1.bin')
Fortran runtime error: Unformatted file structure has been corrupted
спасибо, добавив 'ACCESS = 'STREAM'', заставив его работать – Guddu
Нет смысла использовать' IOSTAT', если вы не проверите его возвращаемое значение для ошибок. –