我有一个查找函数关键点的函数。
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-y)^ 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] =等等,但显然有些东西我不理解。任何帮助将不胜感激
答案 0 :(得分:1)
您正在命令窗口中正确使用该功能。
问题出在函数CritPt
本身:您需要为变量cr
赋值。当函数完成时,它会尝试返回function
之后列出的任何变量的值,但如果该变量不存在则会出错。
如果要在最后一行返回变量的值,请将最后一行更改为
cr = [xcr,ycr]
或者,您可以保留最后一行,但更改第一行,以便返回crpt
:
function [ crpt ] = CritPt(f, var1, var2)