例如我在编写以下代码时:
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})的情况。
请问是什么原因导致的。
只有这一个.m文件,没有调用任何其他文件。
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。