MATLAB 中 Index exceeds matrix dimensions.错误
文本文件名字是yy.txt,内容是:FICZ0326/ANB-6059DTQXTPOR1260146J03AADS.B-6059070337B6177A02E245B18...
文本文件名字是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”这种错误呢?我以前有一个很类似的程序,就没有错误,想不通... 展开
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”这种错误呢?我以前有一个很类似的程序,就没有错误,想不通... 展开
展开全部
展开全部
j取值超出A的长度了。
i是从1到length(A)
j始终比i大1,所以从2到length(A)+1了,超出范围了。
循环那里用for i=1:length(A)-1就好了。
i是从1到length(A)
j始终比i大1,所以从2到length(A)+1了,超出范围了。
循环那里用for i=1:length(A)-1就好了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for i=1:length(A);
if A(i)=='F'&A(j)=='I'
a=j+1;
end
上面循环
访问出界了到了A(70) 然而只有A的长度只到69.
这就是索引报错的原因吧……
if A(i)=='F'&A(j)=='I'
a=j+1;
end
上面循环
访问出界了到了A(70) 然而只有A的长度只到69.
这就是索引报错的原因吧……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询