PDA

View Full Version : MATLAB function


stihl29
Apr19-10, 06:56 PM
Hi, i need to pass a function in matlab a few parameters, one of the parameters is an equation such as :
sin(x)-cos(y)
and have it make the 3d graph, i have no problem setting up the meshgrid etc and getting it to work running strait from the m-file

function graph = graph(f)
n=20;
x = (-n:1:n);
y = (-n:1:n);
[x,y] = meshgrid(x,y);

z=f;

surf(x,y,z);
end

example of running the function

graph(sin(x)-cos(y))

right now when i run it i get.

??? Error using ==> surf at 78
Z must be a matrix, not a scalar or vector.

Error in ==> graph at 7
surf(x,y,z);

Any advice would be great.

Antiphon
Apr19-10, 09:05 PM
Look up "help function pointer" and follow their examples.

matonski
Apr20-10, 03:04 AM
Two things,

1) Change the line z = f to z = f(x,y)

2) When you call the function, use graph(@(x,y) cos(x) - sin(y))