MATLAB: Error Undefined function or variable

errorfunctionMATLABvariable

function [p,yy1]=graph999()
f1=gcf();
x0=str2num(char(inputdlg('Enter x0','Enter parametr',2,{'0'},'on')));
if (x0<-2)|(x0>6)
msgbox('x0 should be between -2 and 6','Results')
else
y0=str2num(char(inputdlg('Enter y0','Enter parametr',2,{'0'},'on')));
if (y0<-5)|(y0>6)
msgbox('y0 should be between -2 and 6','Results')
else
k=str2num(char(inputdlg('Enter k','Enter parametr',2,{'0'},'on')));
p=cos(y)+x.*y;
yy1=ygr(x0,y0,k);
end
end
function yy=ygr(X,Y,k)
x=-2:0.5:6;
y=-5:0.5:6;
[X,Y]=ndgrid(x,y);
Z=(X^2).*sin(Y)+k;
surf(X,Y,Z);
yy=Z;
It doesn't work with error
Undefined function or variable 'y'.
Error in graph999 (line 15)
p=cos(y)+x.*y;
What should I do for correct working?

Best Answer

function graph999 %main function
f1=gcf();
x0=str2double(char(inputdlg('Enter x0','Enter parametr',2,{'0'},'on')));
if (x0<-2)|(x0>6)
msgbox('x0 should be between -2 and 6','Results')
else
y0=str2double(char(inputdlg('Enter y0','Enter parametr',2,{'0'},'on')));
if (y0<-5)|(y0>6)
msgbox('y0 should be between -2 and 6','Results')
else
k=str2double(char(inputdlg('Enter k','Enter parametr',2,{'0'},'on')));
[x,y]=ygr(k); %sub function call inside main function
end
end
function [x,y]=ygr(k) %subfunction definition
x=-2:0.5:6;
y=-5:0.5:6;
[X,Y]=ndgrid(x,y);
Z=(X.^2).*sin(Y)+k;
surf(X,Y,Z);
yy=Z;
end
end
example of surface created:
Related Question