24小时热门版块排行榜    

查看: 2482  |  回复: 4

linzchey

新虫 (初入文坛)

[求助] Fortran输出二进制数据,用matlab读出,结果出错,求助问题何在? 已有2人参与

-----------------------------------------------------------------------------------------
! fortran 程序将整数写入文件
program databin
integer M2, NP1
M2 = 512
NP1=35001
open(unit=66,file='data.BIN',action='WRITE',form='UNFORMATTED',RECL=4)
write(66) M2
write(66) NP1
close(66)
end program
-----------------------------------------------------------------------------------------
% matlab程序将数据读入
clc; clear all; close all;
%
fname = 'data.BIN';
fid   = fopen(fname,'rb');
M2  = fread(fid,1,'int32');
NP1= fread(fid,1,'int32');
fclose(fid);
disp(fprintf('M2 = %d, NP1 = %d\n',M2,NP1));

%matlab读入输出结果为
M2 = 4, NP1 = 512
    18

不知道错在哪?请诸位帮忙指点一下!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fish.yfyh

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
write(66,*) M2
write(66,*) NP1
2楼2014-01-06 01:30:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzchey

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by fish.yfyh at 2014-01-06 01:30:09
write(66,*) M2
write(66,*) NP1

感谢回复!
我希望是unformatted无格式输出,而
write(66,*)是格式化输出。
3楼2014-01-06 09:40:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

感谢参与,应助指数 +1
当需要用fortran与其他软件结合使用时,建议采用无格式直接写文件,而不是你那种默认方式,因为默认的那种方式write(66,*)会自动加入一些间隔符,其他软件不认识
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
4楼2014-01-06 10:18:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzchey

新虫 (初入文坛)

问题已解决。如下范例:

open (1,file=fname,status='replace',form='unformatted',access='direct',recl=n*m )
write(1,rec=1) mat  ! 先存行
close(1)

% matlab
nx=n; ny=m;
fid= fopen(fname,'rb');
mat = fread(fid,[nx, ny],'int32');
fclose(fid);
% mat(nx,ny) == mat(n,m)
!

! method 2 (把一行看做一个记录--n个记录, 一个记录长度为m)
fname='data2-'//trim(adjustl(name1))//'-'//trim(adjustl(name2))
open (1,file =fname,status='replace',form='unformatted',access='direct',recl=m)
do i=1,n
    write(1,rec=i) ( mat(i,j), j=1,m ) ! 先存列
enddo
close(1)

% matlab
nx=n; ny=m;
fid= fopen(fname,'rb');
mat = fread(fid,[ny, nx],'int32');   
fclose(fid);
M = mat';
% M(nx,ny) == mat(n,m)
5楼2014-01-06 15:25:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 linzchey 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +9 Ldrop2023 2026-08-13 9/450 2026-08-16 13:24 by wukun_007
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +32 医学老男孩 2026-08-13 72/3600 2026-08-16 13:15 by 医学老男孩
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +11 家与远方 2026-08-10 16/800 2026-08-16 10:28 by ray43
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见