MATLAB 中 Index exceeds matrix dimensions.错误

[复制链接]
查看11 | 回复3 | 2020-5-21 15:52:30 | 显示全部楼层 |阅读模式
文本文件名字是yy.txt,内容是:
FI CZ0326/AN B-6059
DT QXT POR1 260146 J03A
ADS.B-6059070337B6177A02E245B180F
MATLAB程序:
fid1=fopen('yy.txt','rt');
A=fscanf(fid1,'%s')
i=1;j=2;k=1;
for i=1:length(A);

if A(i)=='F'&A(j)=='I'

a=j+1;

end

if A(i)=='D'&A(j)=='T'

b=i-1;

end

i=i+1;j=j+1;
end
c=a;
for c=a:b;

B(k)=A(c);

k=k+1;
end
为什么会在第一个if语句中出现“Index exceeds matrix dimensions”这种错误呢?我以前有一个很类似的程序,就没有错误,想不通...

回复

使用道具 举报

千问 | 2020-5-21 15:52:30 | 显示全部楼层
MATLAB 中 Index exceeds matrix dimensions错误,是代码错误造成的,解决方法如下:1、启动MATLAB,新建脚本(Ctrl+N),输入以下代码。2、保存和运行上述脚本,弹出错误对话框。错误信息为:这是默认错误字符串(this is the default error string)。对话框名字为:错误对话框(error dialog)。3、接着输入以下脚本,如下图所示。4、保存和运行上述增加后的脚本,弹出3个错误对话框,如下图。5、这里只有设置为modal的错误...5
回复

使用道具 举报

千问 | 2020-5-21 15:52:30 | 显示全部楼层
j取值超出A的长度了。i是从1到length(A)j始终比i大1,所以从2到length(A)+1了,超出范围了。循环那里用for i=1:length(A)-1就好了。...
回复

使用道具 举报

千问 | 2020-5-21 15:52:30 | 显示全部楼层
for i=1:length(A); if A(i)=='F'&A(j)=='I'
a=j+1; end 上面循环访问出界了到了A(70)然而只有A的长度只到69.这就是索引报错的原因吧……...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行