回 帖 发 新 帖 刷新版面

主题:matlab

fid=fopen('BoShi_Omiga2D.txt','r'); %打开数据文件
for i=1:25067                      %利用循环挨个读取
reader=fscanf(fid,'%8f',2);     %读取数据
if reader(2,1)<=0.5
BoShi_Omiga2D=[BoShi_Omiga2D reader];  %构造矩阵
end                             %循环结束
end
[color=FF0000]运行上面的程序总是出现下面的错误:[/color]
??? Attempted to access reader(2,1); index out of bounds because size(reader)=[0,0].

Error in ==> wanmeiban2 at 31
if reader(2,1)<=0.5

回复列表 (共3个回复)

沙发

因为你的READ 是空的,所以才会出现这样的错误

板凳

可是我通过这个程序:fid=fopen('BoShi_Omiga2D.txt','r'); %打开数据文件
                  for i=1:25067                      %利用循环挨个读取
                        reader=fscanf(fid,'%8f',2);     %读取数据
已经把数据读取了呀,怎么会是空的呢?

3 楼

问题应该出在fid=fopen('BoShi_Omiga2D.txt','r'); 或者reader=fscanf(fid,'%8f',2);     这2句程序之中
如果是前者错误,最可能的就是'BoShi_Omiga2D.txt'文件的目录指定错误,需要注意'BoShi_Omiga2D.txt'是否存在你当前工作目录下,如果不在,你需要指定具体该txt文件的目录,是在电脑那个盘,那个文件夹,例如'E:\新建文件夹\BoShi_Omiga2D.txt'
如果是后者应该是你该函数调用语法有误,具体可查看help fscanf仔细斟酌。

我来回复

您尚未登录,请登录后再回复。点此登录或注册