我想這樣定義一個函數:定義函數使用函數作爲參數
function f = f1(fun,a,b,c)
f = c*fun(a+b);
這裏fun
一些功能,當我使用功能f
,我會通過。 我如何在Matlab中做到這一點?
我想這樣定義一個函數:定義函數使用函數作爲參數
function f = f1(fun,a,b,c)
f = c*fun(a+b);
這裏fun
一些功能,當我使用功能f
,我會通過。 我如何在Matlab中做到這一點?
你試過了嗎?學習像matlab這樣的工具的最好方法是嘗試一些東西!
實際上,你甚至不需要創建一個m文件函數。我會在這裏使用一個函數句柄。
fun = @(x) sin(x);
f1 = @(f,a,b,c) c*f(a+b);
f1(fun,2,3,4)
ans =
-3.8357
我也可以將f1定義爲一個m文件函數,但這需要我保存一個文件。何必?
你在找什麼是function handle。
a = 1;
b = 2;
c = 3;
fun = @sqrt; % obtain the function handle of sqrt()
f = f1(fun, a,b,c); % pass the function handle of sqrt() into your function f1().
當你使用:
您可以通過將「at」符號(「@」)在函數名前獲得函數的函數句柄(在下列情況下,sqrt
) fun
,就好像你在使用sqrt
函數。
欲瞭解更多詳細信息,你也可以參考另一個Stackoverflow的問題:function handle in MATLAB