houxiuli_802 发表于 2006-11-9 09:09

请教高手:用MATLAB读数据文件的程序,有问题,怎样改啊?

function x=readata(file1)
%Read data from some file !
% data file's name.
c='d:\dat\'; %为数据文件的路径名
c(8:12)=file1;%为数据文件的文件名(注意长度)
c(13:16)='.fjd';%为数据文件的后缀名
fid=fopen(c,'r');
a=fscanf(fid,'%f %f\n');
fclose(fid);
for n=1:500
    x(n)=a(2*n-1)+i*a(2*n);
end;

%这个文件运行时,出现错误,我无法通过它读文件,请高手指点,如何修改!先谢过了!

anneyholly 发表于 2006-11-9 11:07

你最好能给出错误提示!

happy 发表于 2006-11-9 11:10

把file1给一下,同时如楼上,给一下错误信息

houxiuli_802 发表于 2006-11-9 16:24

我要读的文件是后缀名为BIN 的文件1a0

输入
x=readata('1a0.bin') 后,出现的错误如下:
??? In an assignmentA(:) = B, the number of elements in A and B
must be the same.

Error in ==> readata at 5
c(8:12)=file1;%为数据文件的文件名(注意长度)

houxiuli_802 发表于 2006-11-9 16:27

忘记说明了,这个源程序是我按照书上写的

M文件就无法通过编译,错误如下:

Error in ==> readata at 5
c(8:12)=file1;%为数据文件的文件名(注意长度)

请高手帮忙支招了

FtpAdmin 发表于 2006-11-10 10:02

原帖由 houxiuli_802 于 2006-11-9 16:24 发表
输入
x=readata('1a0.bin') 后,出现的错误如下:
??? In an assignmentA(:) = B, the number of elements in A and B
must be the same.

Error in ==> readata at 5
c(8:12)=file1;%为数据文件的文件 ...


c(8:12)这是5个字符,1a0只是三个字符

修改一下
c(8:10)=file1;%为数据文件的文件名(注意长度)
c(11:14)='.fjd';%为数据文件的后缀名

houxiuli_802 发表于 2006-11-13 20:35

楼上好,我按你说的改了之后还是不行啊!怎么办?

首先,我把原来的c(8:12)=file1改为c(8:10)=file1 ;
                        把   c(13:16)='.fjd'改为c(11:13)=file1;
即满足了我要读的文件的 文件名和后缀名长度,可是调用x=readata('1a0.bin') 后,出现的错误还是和以前一样:
??? In an assignmentA(:) = B, the number of elements in A and B
must be the same.

Error in ==> readata at 5
c(8:10)=file1;%为数据文件的文件名(注意长度)

然后,我又把程序复原,尝试了打开text2.txt 文本文件。输入以下命令,结果显示的错误如下:

x=readata('text2.txt');
??? In an assignmentA(:) = B, the number of elements in A and B
must be the same.

Error in ==> readata at 5
c(8:12)=file1;%为数据文件的文件名(注意长度)


到底是什么问题呢?大家帮忙想想办法啊!

eight 发表于 2006-11-13 20:49

原帖由 houxiuli_802 于 2006-11-13 20:35 发表
首先,我把原来的c(8:12)=file1改为c(8:10)=file1 ;
                        把   c(13:16)='.fjd'改为c(11:13)=file1;
即满足了我要读的文件的 文件名和后缀名长度,可是调用x=readata('1a0.bin') 后, ...

c = ['d:\dat\', file1,'.fjd']

xjtu211 发表于 2006-11-13 22:17

呵呵这么多人回答这个问题啊,怎么不会使用help呢

houxiuli_802 发表于 2006-11-14 15:27

eight的意思是?

是我文件存放路径不对吗? 我把要读的文件,存放到d:\dat目录下,可仍是读不出来啊?错误和原来一样。帮助里也没有关于读这种文件的信息啊,我只好求助于热心的版友了。

eight 发表于 2006-11-14 15:54

原帖由 houxiuli_802 于 2006-11-14 15:27 发表
是我文件存放路径不对吗? 我把要读的文件,存放到d:\dat目录下,可仍是读不出来啊?错误和原来一样。帮助里也没有关于读这种文件的信息啊,我只好求助于热心的版友了。


你要读的文件是1a0.bin,那为何要加上.fjd后缀名?

建议在readdata函数中,把第一到第三句删除,即修改后的readdata函数第一句是fopen那句。然后在命令窗口用readdata('d:\dat\1a0.bin')
页: [1]
查看完整版本: 请教高手:用MATLAB读数据文件的程序,有问题,怎样改啊?