2015-05-04 128 views
1

我有一個函數可以查找函數的關鍵點。爲什麼我會在Matlab中調用'未指定輸出參數'錯誤

function [ cr ] = CritPt(f, var1, var2) 
f = sym(f); 
fx = diff(f,var1); 
fy = diff(f,var2); 
[xcr,ycr] = solve(fx,fy); 
crpt = [xcr,ycr] 

我應該使用在命令窗口函數CritPt定義一個變量被稱爲CP含有F(X,Y)= X^2 * Y +(1-γ)的臨界點^ 2

當我嘗試這樣我得到:

>> cp=CritPt('x^2*y+(1-y)^2','x','y') 

crpt = 

[  0, 1] 
[ 2^(1/2), 0] 
[ -2^(1/2), 0] 

Error in CritPt (line 2) 
f = sym(f); 

Output argument "cr" (and maybe others) not assigned 
during call to 
"C:\Users\GTAV\Documents\MATLAB\CritPt.m>CritPt". 

我試圖像SYMS CP許多替代= [CP] =等等等等,但有明確的東西我不理解。任何幫助將不勝感激

回答

1

您正在命令窗口中正確使用該功能。

問題出在功能CritPt本身:您需要爲變量cr分配一個值。當函數完成時,它會嘗試返回function之後列出的任何變量的值,但如果該變量不存在,則會出現錯誤。

如果你想返回的最後一行的變量的值,那麼你的最後一行改爲

cr = [xcr,ycr] 

或者,你可以離開的最後一行,因爲它是,但改變的第一行,所以你返回crpt

function [ crpt ] = CritPt(f, var1, var2) 
+0

非常感謝您的訣竅:) – zebrofski

相關問題