Matlab:If语句中的不等式导致错误

时间:2017-10-12 16:15:11

标签: matlab if-statement

我提前道歉,我确信这个问题的答案非常简单,不幸的是我只是不确定发生了什么。

我正在尝试运行以下代码

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循环内部会导致错误。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

看起来你没有向c添加更多元素;在i = 2时,您正试图访问c(2)中的if cubicPoly(a(i))*cubicPoly(c(i)) < 0,这会让您超出界限。

如果您打算在循环时向c(i+1) = ...添加元素,则可能需要包含c之类的内容。