MATLAB 中 Index exceeds matrix dimensions.错误

文本文件名字是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”这种错误呢?我以前有一个很类似的程序,就没有错误,想不通...

MATLAB 中 Index exceeds matrix dimensions错误,是代码错误造成的,解决方法如下:

1、启动MATLAB,新建脚本(Ctrl+N),输入以下代码。

2、保存和运行上述脚本,弹出错误对话框。错误信息为:这是默认错误字符串(this is the default error string)。对话框名字为:错误对话框(error dialog)。

3、接着输入以下脚本,如下图所示。

4、保存和运行上述增加后的脚本,弹出3个错误对话框,如下图。

5、这里只有设置为modal的错误对话框点击“确定(OK)”或者×掉之后,另外两个错误对话框才可以移动或者点击确定(OK)等操作。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-12
j取值超出A的长度了。
i是从1到length(A)
j始终比i大1,所以从2到length(A)+1了,超出范围了。

循环那里用for i=1:length(A)-1就好了。本回答被提问者和网友采纳
第2个回答  2009-05-03
for i=1:length(A);
if A(i)=='F'&A(j)=='I'
a=j+1;
end

上面循环
访问出界了到了A(70) 然而只有A的长度只到69.

这就是索引报错的原因吧……