声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 蜜雪儿

[综合讨论] 关于reshape命令

[复制链接]
发表于 2008-8-5 16:19 | 显示全部楼层
哈哈,我知道你错在哪了,我知道不该笑,不过还是想笑:lol

你size的是文件标识,不是数组

把程序改为
>> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制

>> hc1 = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次

>> [tl,xl,yl]=size(hc1);

>> hc = reshape(hc1,xl*yl,tl);%改变维数,成为m*n的矩阵,m为观测点个数,n为时刻数



原帖由 蜜雪儿 于 2008-8-5 16:03 发表
fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> [tl,xl,yl]=size(fid);
>> [tl,xl,yl]=size(fid)

tl =

     1


xl =

     1


yl =

     1
--------------------------------试 ...

评分

1

查看全部评分

回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2008-8-5 16:28 | 显示全部楼层
>> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> hc = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次
>> [tl,xl,yl]=size(hc)

tl =

     1284660


xl =

     1


yl =

     1----------------------------------我又试了一下,这是结果,还不是我想要的结果
发表于 2008-8-5 16:50 | 显示全部楼层
你的程序里的错误可真多呀:@L

reshape要求更改矩阵尺寸前后的两个矩阵的体积相同,

很明显,你的 xl*yl*tl =81*56*305不等xl1*yl1*tl1=1284660*1*1

>> xl=81;
>> yl=56;
>> tl=305;

>> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制

>> hc1 = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次

[tl1,xl1,yl1]=size(hc1)

>> hc = reshape(hc1,xl*yl,tl);%改变维数,成为m*n的矩阵,m为观测点个数,n为时刻数




原帖由 蜜雪儿 于 2008-8-5 16:28 发表
>> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> hc = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次
>> [tl,xl,yl]=size(hc)

tl =

     1284660


xl =

     1


yl =

     1----------------------------------我又试了一下,这是结果,还不是我想要的结果...
发表于 2008-8-5 19:03 | 显示全部楼层

回复 18楼 的帖子

文件读进去,最多也应该是2维的
不可能是三维的吧

你读进去的是一个一维的数据
而你原先给的
>> xl=81;
>> yl=56;
>> tl=305
与读如数据的大小不一致
如果txt 文件没有漏掉数据
那么修改你的xi yi ti

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 00:30 , Processed in 0.062606 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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