2017-12-27 478 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