例如我在编写以下代码时:
for j=1:length(sway{i})
if bidprice(bidprice==sway{i}(j))>maxprice(i,sway{i}(j))
sway{i}(j)=[];
end
end
出现↓
索引超出矩阵维度。
出错 random_solve (line 49)
if bidprice(bidprice==sway{i}(j))>maxprice(i,sway{i}(j))
在任意一次检查中,length(sway{i})=3,此时会出现j=4进入的情况,导致sway{i}(j)会超出索引,在加入以下代码后就不会提示错误了
for j=1:length(sway{i})
if j>length(sway{i})
break;
end
if bidprice(bidprice==sway{i}(j))>maxprice(i,sway{i}(j))
sway{i}(j)=[];
end
end
显然确实是有大于for最大值的情况进入循环。
在进行clear,clc清空所有内容后,检查整个文件只有这一处使用了j变量,多次运行仍然会出现j大于length(sway{i})的情况。
请问是什么原因导致的。