Octave表示即使它们存在变量也是不确定的

时间:2017-11-25 17:03:10

标签: octave

我有以下代码

function W = robust(a,c,y)
  W = pinv(a' * c * a) * a' * c *y;
endfunction

但是,当我尝试运行它时,我收到以下错误。

error: 'a' undefined near line 4 column 12
error: called from
    robust at line 4 column 5

这完全没有意义。我在这里做错了什么?

编辑:我通过emacs调用此方法。所以,我使用命令&octave-source-file',它在低位八度进程中执行文件。我看到如果这个缓冲区不在我启动进程的地方就可以了。如果我在另一个文件上启动八度音程,然后将此文件发送到下级进程,它将评估该函数。

1 个答案:

答案 0 :(得分:3)

Octave从MATLAB继承了"函数文件"的概念,不同于"脚本文件"。 A"功能文件"假定在执行文件时包含需要调用的函数。因此,当你想到"我定义它"时,Octave认为你正在调用该函数。既然你没有给出任何输入,那就是"未定义的变量"错误。

Function files

  

一旦Octave找到名称匹配的文件,就会读取该文件的内容。如果它定义了单个函数,则编译并执行它。

Script files

  

与函数文件不同,脚本文件不能以关键字函数开头。如果是这样,Octave将假定它是一个函数文件,并且它定义了一个应该在定义后立即进行评估的函数。