【问题标题】:Undefined function or variable Matlab未定义的函数或变量 Matlab
【发布时间】:2013-09-27 02:33:48
【问题描述】:

我需要编写一个定点迭代算法,它大部分是编码的,但我遇到了这个错误:

未定义的函数或变量“g”。

我想将 g 定义为 g(x) = 1/2*(1+5/x)。但是,我是 matlab n00b 并且不确定如何执行此操作。任何帮助将不胜感激,谢谢。

  function [y,k] = fixedpoint(g,p0,tol,max1)
          for k=1:max1
          p = g(p0);
          err = abs(p-p0);
          abserr = abs(sqrt(5)-p);
          ratioerr = abserr/(abs(sqrt(5)-p0));

          if (err<tol)
             break
          end
          p0 = p;

  end
  if (k==max1)
      disp('The algorithm did not converge')
  end
  y = p;

【问题讨论】:

    标签: matlab function undefined


    【解决方案1】:

    您可以将g 定义为匿名函数

    g = @(x)1/2*(1+5/x)

    然后以通常的方式调用你的函数fixedpoint

    【讨论】:

    • 您也可以通过@funcname 将句柄传递给M文件函数。
    • 小心谨慎,小心听从这条建议。请注意,代码 P0W 显示使用 / 而不是 ./ 所以如果使用向量或数组输入调用,它将产生完全意想不到的结果。然后你下一个痛苦的问题是问为什么你的代码不起作用。更好的编程技术是在这样的事情上使用 ./,即使您通常希望将标量输入传递给它,因为有一天您不会这样做。
    猜你喜欢
    • 2023-03-08
    • 2021-11-22
    • 2012-04-15
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多