爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5205|回复: 5

[程序设计] matlab读取fortran输出的dat数据出错

[复制链接]

新浪微博达人勋

发表于 2015-12-27 23:39:18 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
Fortran输出的文件语句为:
      open(20,file='e:/20140312110026/alt-ave.dat',status='new',
     &     form='binary')             

        write(20)(ave_pip_num(k),k=1,40)
        write(20)(ave_pip_lwc(k),k=1,40)
      write(20)(ave_pip_mvd(k),k=1,40)
        write(20)(ave_pip_ed(k),k=1,40)
        close(20)
      end


matlab读取的程序为:
clear;
clc;
fid=fopen('e:\20140312110026\alt-ave.dat','r');
a=fread(fid,'int32')
fclose(fid);


读出的数据是错误的,和实际数据不一致。
求大神们解答。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-12-28 10:50:30 | 显示全部楼层
楼主的问题太模糊,不好判断。
但是根据本人经验,很多时候matlab读取的dat或grd文件都变成了一维,即1*xxxxxxxxx,楼主可以根据fortran中实际数组的大小,用reshape命令将一维数组还原正确的格式。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-12-28 11:16:27 | 显示全部楼层
数据类型不对?
还是说设置open里面access字段的问题?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-12-28 21:44:23 | 显示全部楼层
泰达巴神 发表于 2015-12-28 10:50
楼主的问题太模糊,不好判断。
但是根据本人经验,很多时候matlab读取的dat或grd文件都变成了一维,即1*xx ...

问题已经解决,是因为Fortran输出的文件里有缺测值,导致matlab读出的数据和原始数据不一致
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-12-28 21:45:05 | 显示全部楼层
Nearsc 发表于 2015-12-28 11:16
数据类型不对?
还是说设置open里面access字段的问题?

问题已经解决,是Fortran输出数据有缺测值。谢谢!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-21 17:29:19 | 显示全部楼层
想问一下解决方法——  我读dat  之后只剩下一堆默认缺测值和该读的全都是零555
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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