24小时热门版块排行榜    

查看: 1861  |  回复: 4
【悬赏金币】回答本帖问题,作者linzchey将赠送您 10 个金币

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 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 论文被硕导卡 +4 自强不息a?a 2024-06-26 6/300 2024-06-27 12:14 by 哇卡哇卡1
[教师之家] 高校辞职,要求赔偿,这到底合不合理 +24 传动_海神 2024-06-23 36/1800 2024-06-27 11:26 by f1yfish
[论文投稿] 我在写关于多维空间的论文,希望能与大家交流,准备在science上发表 +9 lgf519 2024-06-24 11/550 2024-06-27 11:20 by f1yfish
[有机交流] 大佬们,打的核磁氢谱与chemdraw预测的有偏差 +7 来了个 2024-06-26 7/350 2024-06-27 11:11 by wubiansiya
[基金申请] 省基金太难了 +8 aasahr 2024-06-26 8/400 2024-06-27 10:35 by 小狮子2010
[硕博家园] 考博英语 +6 198新用户 2024-06-25 11/550 2024-06-27 10:13 by Bletilla
[硕博家园] 联培博士文章第一单位署名问题交流~ +10 橙成成c 2024-06-23 23/1150 2024-06-27 10:11 by 橙成成c
[育儿交流] 暑假孩子一个人在家可以干什么 +8 唠叨的映 2024-06-25 9/450 2024-06-27 09:28 by 晓目崇
[考研] 刚当完兵回来想考研 +7 五官在线 2024-06-23 18/900 2024-06-26 17:05 by 1158057902
[找工作] 老博士选高校 5+5 woodhead8386 2024-06-24 8/400 2024-06-26 16:35 by 大大熊呀
[基金申请] 博后面上到底什么时候出结果??? +7 爱学lsy 2024-06-24 7/350 2024-06-25 19:24 by 暴走的蒜泥
[基金申请] 2024安徽省哲社立项名单公示 +3 robin_work 2024-06-24 6/300 2024-06-25 14:37 by Pickfoot
[硕博家园] 数据不好 +5 Hetai 2024-06-23 7/350 2024-06-25 12:37 by 1591099
[基金申请] 演员杨幂在核心期刊发表论文,中国广播电视学期刊 +9 babu2015 2024-06-22 12/600 2024-06-25 11:05 by 我是勇敢牛牛
[有机交流] 高温酯化反应喷料 20+4 hl24678 2024-06-21 7/350 2024-06-25 09:45 by ghj-hebust
[教师之家] 有没有今年的影响因子? +6 jurkat.1640 2024-06-22 10/500 2024-06-24 22:48 by 潇湘之迷
[金属] 寻找钛合金热压缩代做 +4 liuyang358 2024-06-23 4/200 2024-06-24 13:50 by 搬砖狗不放弃
[基金申请] 国自然资助比率是不是要下降了?? +8 今晚推荐22 2024-06-21 12/600 2024-06-24 11:15 by Pickfoot
[基金申请] 国自然青年基金,1A4B能上会吗?青年和面上的上会标准是一样的吗? +19 今晚推荐22 2024-06-20 32/1600 2024-06-23 23:17 by andywei1028
[有机交流] 生成亚胺的反应怎么能进行完全 +3 1369836 2024-06-23 3/150 2024-06-23 18:44 by hwqMSE
信息提示
请填处理意见