24小时热门版块排行榜    

查看: 1905  |  回复: 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个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 评正教授需要两个国家级项目,有人用子课题糊弄,结果在评审前资格公示时被举报拿下了 +21 瞬息宇宙 2024-11-12 30/1500 2024-11-15 14:10 by sh0210210327
[教师之家] 北大教授何怀宏曾如此描述他的同行 +12 zju2000 2024-11-09 12/600 2024-11-15 12:13 by PJ女神
[论文投稿] 职称论文 +9 xiaoqi_66 2024-11-09 11/550 2024-11-15 10:39 by 15035121292
[基金申请] 广东省自然科学基金-面上项目消息有了么? +4 pachang 2024-11-14 6/300 2024-11-15 09:39 by zhoulei7170
[基金申请] 求助 +4 Enenenene 2024-11-15 4/200 2024-11-15 09:36 by 榨菜拌青椒
[论文投稿] 论文返修状态变成了awaiting AE recommendation 10+3 猪小耍 2024-11-13 12/600 2024-11-15 08:41 by 北京莱茵润色
[硕博家园] 课题和专业一点都不相关怎么办 +7 imt4n9 2024-11-11 10/500 2024-11-15 01:55 by 成长虫
[论文投稿] chemical science和advanced science哪个好一点 +5 yly150 2024-11-12 5/250 2024-11-15 01:09 by ca0yan9
[论文投稿] OE返修遇到expired +3 隔壁老王来了 2024-11-14 7/350 2024-11-14 20:46 by 隔壁老王来了
[论文投稿] 投稿系统中的通讯作者和文章中的通讯作者不一样,文章目前被录用了? +4 babybabygo 2024-11-12 5/250 2024-11-14 19:13 by 走了002
[硕博家园] 研究生的生活该是什么样 +4 lqy0719 2024-11-14 4/200 2024-11-14 16:45 by 阿荣喝酒
[找工作] 咨询一下江西的高校待遇,人文氛围怎么样? +5 akslis2024 2024-11-09 5/250 2024-11-14 13:53 by 啄木鸟、
[基金申请] 76批博后基金 +3 feiyi3986 2024-11-14 3/150 2024-11-14 11:50 by puly
[有机交流] 硫谜用双氧水氧化出现的困惑(老板说一定要用双氧水氧化做好)求指教 10+4 luowenwu 2024-11-10 15/750 2024-11-14 10:52 by luolinfeng
[基金申请] 博后面上出结果了 +5 wl87925139 2024-11-14 5/250 2024-11-14 10:26 by kingmax18996
[基金申请] 第76批博士后面上大概什么时间公示 +6 探际者 2024-11-11 7/350 2024-11-14 10:06 by Foxicut88
[基金申请] 浙江省青基怎么看A还是B? +8 ToallGoof 2024-11-11 14/700 2024-11-13 09:11 by Praybest
[论文投稿] 二审审一年的佛系编辑 +10 thefoxrain 2024-11-09 15/750 2024-11-12 19:27 by lide966
[论文投稿] 论文接受后,编辑部发邮件提醒缺少附件 15+4 上善若水明泪 2024-11-10 4/200 2024-11-12 14:24 by 北京莱茵润色
[基金申请] 要求论文发表日期在项目执行期内,论文发表日期是在线日期还是见刊日期 +6 Jiangnanyu1 2024-11-09 7/350 2024-11-10 17:49 by jurkat.1640
信息提示
请填处理意见