我提前道歉,我确信这个问题的答案非常简单,不幸的是我只是不确定发生了什么。
我正在尝试运行以下代码
a(1) = -2;
b(1) = 2;
c(1) = 0;
for i = 1:15
if cubicPoly(a(i))*cubicPoly(c(i)) < 0
a(i+1) = a(i);
b(i+1) = c(i);
else
a(i+1) = c(i);
b(i+1) = b(i);
end
end
但是当我这样做时,我收到错误消息
Index exceeds matrix dimensions.
Error in Assignment2 (line 31)
if cubicPoly(a(i))*cubicPoly(c(i)) < 0
如果我通常评估我的三次多项式函数cubicPoly,一切正常。但是当在序列a(i)和c(i)处进行求值时,在for / if循环内部会导致错误。
任何帮助都将不胜感激。
答案 0 :(得分:3)
看起来你没有向c
添加更多元素;在i = 2
时,您正试图访问c(2)
中的if cubicPoly(a(i))*cubicPoly(c(i)) < 0
,这会让您超出界限。
如果您打算在循环时向c(i+1) = ...
添加元素,则可能需要包含c
之类的内容。