2017-12-27 483 views
0

我是matlab新手。 在Matlab中,我想从工作区获取函数的变量。但我没有这样做。例如, ;该函数是:matlab函数变量定义

function Y = objfun(x) 
Y = 20+x(1).^2 + 2*x(2).^2 -15*x(3); 
end 

使我有以下问题,当我运行函数

>> objfun 
Not enough input arguments. 

Error in objfun (line 5) 
Y = 20+x(1).^2 + 2*x(2).^2 -15*x(3); 

x变量是存在于工作区等X = [4 5 7]和我不想写它内部的功能。所以我该怎么做。

也许这是你的东东问题,但我不知道,我会做到这一点。 你能帮助我吗?

+0

输入'objfun(x)'而不是'objfun' –

+0

是的,它为什么不运行运行按钮 –

+0

因为那么你给它没有输入参数 –

回答

1

在Matlab(或Octave)中,您可以使用scripts or functions

如果您创建了名为objfun的脚本,那么您有您正在查找的内容。只需使用objfun调用它,它将使用工作空间变量x。该脚本被保存为objfun.m

功能不同。他们可以有参数,但是这些参数是局部变量(只在函数中可用)。

如果您定义了一个函数,则必须使用参数调用它。

+0

谢谢Jgrocha,那么我可以使用全局变量吗? –

+0

是的,你可以使用全局变量。但使用内部变量的函数更安全。 – jgrocha