: b=10.42/200;
: h=100/1000;
: a=2.81/200;
: p=1.64*9.81;
: qu=10550;
: up=(b*h/(a^2))*cosd(O);
: low=(x(i)*(1-sind(O))/2)-sind(O);
: aa(i)=acotd(TO+SeO*(1+(up/low(i)))^0.5);
你上一行的low只有一个值 你在这行却low(i) 它会出错很正常
: K(i)=tand(2*aa(i)+O);
: qt(i)=p/(pi*(b*h*K(i)-a^2));
: y(i)=qu/qt(i)
: differ(i)=abs(y(i)-x(i))
: if differ(i)<0.5
: x(i)
: else
: x(i+1)=x(i)+0.05;
: end
然后你在if循环里面你这样写代表如果进入if的执行式
你就变成没有x(i+1)
: end
应该是这两个问题比较大吧