Fortran Coder

查看: 9561|回复: 3
打印 上一主题 下一主题

[文件读写] Matlab读取Fortran生成的二进制数据

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
27 元
贡献
9 点
跳转到指定楼层
楼主
发表于 2019-12-9 15:20:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
小弟用Fortran写了一段生成二进制数据的程序,代码如下:

program main
    real::x(100)

    do i=1,100
      x(i) = i
    enddo

    open(10, file='h.dat',form='unformatted')
    write(10) x
end



然后生成的h.dat放入matlab进行处理,matlab处理的代码如下:

file_id = fopen('h.dat', 'r');
h0= fread(file_id,'float32');


结果输出来的结果是102个数据,在数组的头和尾多出了两个量级为10^-43次方的数据,如下图所示,请问各位这个是什么原因?怎么才能解决这个问题?谢谢了





分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

规矩勋章新人勋章元老勋章

QQ
沙发
发表于 2019-12-9 16:02:56 | 只看该作者
open(10, file='h.dat',access='stream')
彼岸,有永恒的守候...

2

帖子

1

主题

0

精华

新人

F 币
27 元
贡献
9 点
板凳
 楼主| 发表于 2019-12-9 16:36:29 | 只看该作者
青衣巷 发表于 2019-12-9 16:02
open(10, file='h.dat',access='stream')

感谢您的回复,我用了您提供的方法,虽然在数组的头上没有出现异常,但是在数组的尾部多出两个数据。

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

规矩勋章新人勋章元老勋章

QQ
地板
发表于 2019-12-9 17:01:17 | 只看该作者
删掉原来的文件,重新生成
彼岸,有永恒的守候...
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-25 22:29

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表