爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 815|回复: 3

[讨论] 储存数据后再读取,为何读取的数据值与原始数据不一样?

[复制链接]

新浪微博达人勋

发表于 2023-8-15 10:37:24 | 显示全部楼层 |阅读模式

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

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

x
b = f_ssta(:);
fid=fopen('E:\WMN\M\obs_ssta_de_trending\data\1993-dec2021.det.00.dat','a');  %自动生成.dat文件
fwrite(fid, b, 'float32');   % 将数据写入文件
fclose(fid);


以上是储存代码;

fnm = 'E:\WMN\M\obs_ssta_de_trending\data\1993-dec2021.det.00.dat'
fid=fopen(fnm,'r','b');
data=fread(fid,'*float32');
fclose(fid);
data1 = zeros(134, 61, 348);
idx = 1;  % 存储数据的索引
for t = 1:348
    for j = 1:61
        for i = 1:134
            % 读取数据
            data1(i, j, t) =data(idx);
            % 更新索引
            idx = idx + 1;
        end
    end
end

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-8-15 11:45:26 | 显示全部楼层
感觉应该是一样的  唯一看着像出问题的地方是fopen 建议以r的形式打开 a的形式如果源文件存在 会以追加的形式在后面写入 那自然两个文件不一样了

另外后面三层for循环效率太低了 可以用reshape提高效率
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-8-16 10:25:14 | 显示全部楼层
wjy_ecnu 发表于 2023-8-15 11:45
感觉应该是一样的  唯一看着像出问题的地方是fopen 建议以r的形式打开 a的形式如果源文件存在 会以追加的形 ...

a这个地方,后来修改了。但是原始数据和储存再读取数据,只有数值为0的都还是0,其他的数值没有一样的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-8-16 10:30:50 | 显示全部楼层
原始数据数值和存储再读取的数值对比:
微信图片_20230816102248.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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