2015-02-09 71 views
0

我是MATLAB新手,所以請耐心等待。從程序/函數中返回一個(數學)函數?

我知道我們可以從一個函數(在編程術語中)返回一個函數(在編程術語中),但是如何從MATLAB函數返回(數學)函數?

這裏就是我想要做的事:

我定義我的(數學)函數如下:

coeffs = [1 2 3]; 
x = sym('x'); 
y = sym('y'); 
f(x, y) = coeffs(1) * x + coeffs(2) * y + coeffs(3); 

然後我就可以使用該功能在我的代碼是這樣的:

val1 = f(1, 2); 
val2 = f(2, 3); 

這一切都很好。現在,我的f(x, y)並不總是有這種形式ax + by + c,所以我想創建一個(MATLAB)功能,基於這樣的輸入返回適當的形式:

function retF = createFunction(someinput) 
    % code here 
    if (some condition) 
    %retF = f(x, y) = coeffs(1) * x + coeffs(2) * y + coeffs(3); 
    else 
    %retF = f(x, y) = <sth else>; 
    end 
end 
+0

請閱讀標籤說明:您的問題似乎與在Matlab中構建GUI無關,因此我刪除了[matlab-guide]標籤。 – horchler 2015-02-09 03:34:14

回答

1

您可以直接返回功能,不需要使用兩個變量名稱:

function retF = createFunction(someinput) 
    % code here 
    if (some condition) 
    retF(x, y) = coeffs(1) * x + coeffs(2) * y + coeffs(3); 
    else 
    retF(x, y) = <sth else>; 
    end 
end