为什么 Octave 调试器不断产生此解析错误?

Why does Octave debugger keep on produce this Parse Error?

提问人:Salomon Ntabet 提问时间:10/26/2023 最后编辑:Cris LuengoSalomon Ntabet 更新时间:10/26/2023 访问量:17

问:

我编写了一个行搜索函数,当我在 BFGS 函数中时,我将用在 BFGS 方法中使用它来收敛值。但我不知道为什么代码上有语法错误。

function alpha = linesearch(f, x, d)
  alpha = 1e-5;

  while True:
    x_new = x + alpha * d;

    if f(x_new) < f(x):
      alpha = alpha * 1.2;
    else:
      alpha = alpha * 0.5;
    endif

    if alpha < 1e-5:
      break;
    endif
  endwhile

  return alpha;
end
linesearch

error: parse error near line 5 of file C:\Users\User\octave-8.3.0-w64\octave-8.3.0-w64\linesearch.m

  syntax error

>>>     x_new = x + alpha * d;
                             ^

这是我每次尝试某些操作时显示的错误

语法错误 八度

评论

0赞 Cris Luengo 10/26/2023
您是自己输入代码,还是从某个地方复制粘贴?在后一种情况下,在错误消息指向的位置可能有一个零宽度的连接器或类似的连接器。
2赞 kikon 10/26/2023
您在那里使用了一些 python 语法:删除 .此外,要从函数返回值,必须在函数退出之前分配变量,这已经做到了。 不应该跟在变量名后面,它只用于从结构内部退出函数(如等) - 函数末尾的行是完全不必要的:whileifelsealphareturnforwhilereturn

答: 暂无答案