问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
这是有关部分代码段:
persistent xl;
persistent xr;
persistent pleft;
persistent pright;
if(isempty(pright))
pright=zeros(4,1);
end
if(isempty(pleft))
pleft=zeros(4,1);
end
if(isempty(xl))
xl=0;
end
if(isempty(xr))
xr=0;
end
if(isempty(p))
p=zeros(4,1);
end
if(isempty(v))
v=zeros(4,1);
end
if(isempty(dc))
dc=zeros(4,1);
dc(1)=0;
dc(2)=0.3;
dc(3)=0.5;
dc(4)=0.9;
end
if(u>=1 && u<=4)
if((VpvIpv)>p(u))
p(u)=VpvIpv;
xl=dc(u)+v(u)*d0/2;
xr=dc(u)-v(u)*d0/2;
pleft=p(xl); 这个地方报错,不知道怎么改
pright=p(xr);
pbest(u)=dcurrent;
end
end
运行结果及报错内容
运行后报错:Index exceeds array dimensions. Index value 0 exceeds valid range [1-4] of array p.
Error in 'bso_4PV_700w/MATLAB Function1' (line 96)
pleft=p(xl);