你size的是文件标识,不是数组
把程序改为
>> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> hc1 = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次
>> =size(hc1);
>> hc = reshape(hc1,xl*yl,tl);%改变维数,成为m*n的矩阵,m为观测点个数,n为时刻数
原帖由 蜜雪儿 于 2008-8-5 16:03 发表 http://www.chinavib.com/forum/images/common/back.gif
fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> =size(fid);
>> =size(fid)
tl =
1
xl =
1
yl =
1
--------------------------------试 ... >> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> hc = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次
>> =size(hc)
tl =
1284660
xl =
1
yl =
1----------------------------------我又试了一下,这是结果,还不是我想要的结果 你的程序里的错误可真多呀:@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:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次
=size(hc1)
>> hc = reshape(hc1,xl*yl,tl);%改变维数,成为m*n的矩阵,m为观测点个数,n为时刻数
原帖由 蜜雪儿 于 2008-8-5 16:28 发表 http://www.chinavib.com/forum/images/common/back.gif
>> fid = fopen('H:\eof\sstxin.dat','rb'); %打开文件,二进制
>> hc = fread(fid,Inf,'float'); %inf:正无穷,全部读入,变量原来排放顺序:经度,纬度,高度,变量,时次
>> =size(hc)
tl =
1284660
xl =
1
yl =
1----------------------------------我又试了一下,这是结果,还不是我想要的结果...
回复 18楼 的帖子
文件读进去,最多也应该是2维的不可能是三维的吧
你读进去的是一个一维的数据
而你原先给的
>> xl=81;
>> yl=56;
>> tl=305
与读如数据的大小不一致
如果txt 文件没有漏掉数据
那么修改你的xi yi ti
页:
1
[2]