MATLAB错误消息"此语句不在任何函数内。"

时间:2014-12-07 22:42:00

标签: matlab function

我正在尝试定义一个简单的函数,然后调用它:

   function p=MyExp(N);
      p=[ 1 ]; % 0th order polynomial. 
      for k=1:N
         pk=1/(factorial(k));
         p=[pk,1];
      end
   end


   poly3=MyExp(3);
   disp (poly3)

MATLAB正在返回一条消息: 错误:文件:matlab_labIII_3_I.m行:10列:1 此声明不在任何函数内。  (它遵循END,终止函数的定义  " MyExp"。)

此脚本适用于OCTAVE!

由于

1 个答案:

答案 0 :(得分:6)

如果在Matlab脚本中使用函数,则需要在函数内部包含所有代码,其中可以有多个函数。类似产品(Octave和Scilab)没有这个限制。

使用最少的代码更改可以轻松实现:将非功能代码包装到函数中,然后调用 。主要功能应首先出现在脚本中。

function MyProgram()
   poly3=MyExp(3);
   disp (poly3)
end 

function p=MyExp(N);
      p=[ 1 ]; % 0th order polynomial. 
      for k=1:N
         pk=1/(factorial(k));
         p=[pk,1];
      end
end

此外,当您使用函数时,Matlab希望您的文件名与要调用的函数的名称相匹配。因此,该文件应命名为MyProgram.m(或者您的主要函数的名称)。