请教各路高手:我在MATLAB中导入了一个矩阵后,提示:??? Index exceeds matrix dimensions.
我知道这是超出了MatLAB矩阵最大维数的意思。虽然矩阵无法再矩阵变量中显示,但庆幸的是,所有数据已在该变量中正确存储,这时,我想问:如何使得MATLAB忽略掉M文件中的上述错误,从而使得后面的程序得以正常运行?
下面是我的问题程序:
K=0;
while ~feof(fr)
K
ch=fgetl(fr);
col1=abs(ch(1:32));
col2=str2num(ch(34:38));
col5=str2num(ch(48:55))
col6=abs(ch(57));
col5
col2(1)
col7=abs(ch(59:90))
for i=1:32
fprintf(fw1,'%d ',col1(i));
end
for i=1:32
fprintf(fw1,'%d ',col7(i));
end
fprintf(fw1,'%d %d %d\n',col6,col2,col5);
statsu=fseek(fr,0,0);%loacate the pointer on the next line
K=K+1;
end
循环执行结束后(K=11),他就会提示:
??? Index exceeds matrix dimensions.
Error in ==> test_digit2 at 15
col5=str2num(ch(48:55));
我就不明白了,问题出在哪里?
---------------------------
我用length(ch)=55
如何让matlab 忽略错误运行
答案:5 悬赏:80 手机版
解决时间 2021-02-02 05:50
- 提问者网友:一抹荒凉废墟
- 2021-02-01 06:44
最佳答案
- 五星知识达人网友:动情书生
- 2021-02-01 07:28
你好,既然你只是要让程序强行运行,你做一个if 如果k == 11就把k强行变成10。或者还有什么其他函数超出了最大值,都把这个强行改成小一点的。
全部回答
- 1楼网友:雾月
- 2021-02-01 11:52
try{}
catch{}
语句
- 2楼网友:爱难随人意
- 2021-02-01 11:20
这样肯定不行
- 3楼网友:佘樂
- 2021-02-01 09:56
最好避免出现这种情况,实在不行的话试试try,它会在程序出错时跳出继续后面的语句。
————————————————————————————————
是不是ch此时根本就没有55个元素,所以就取不到了,就出错了。
————————————————————————————————
你会调试吗,一步步运行,看问题究竟出在哪。这个只能你自己干了。
- 4楼网友:渡鹤影
- 2021-02-01 08:29
你好,既然你只是要让程序强行运行,你做一个if 如果k == 11就把k强行变成10。或者还有什么其他函数超出了最大值,都把这个强行改成小一点的。
希望对你有所帮助,望采纳。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯