Plot function handle with vector input

Hi guys
This is the first question I ask in this forum. Please bear with me.
I want to make a surface plot of the following function, but I get no output:
fsurf(@(x)(x(1)^2+x(2)^2-x(1)*x(2)))
if I however use the function with standard x,y coordinates MATLAB easily makes the surface plot:
@(x,y)(x^2+y^2-x*y)
So the question is how do I make the surface plot where the input variables comes in vector form?

 Accepted Answer

Stephen23
Stephen23 on 17 Apr 2020
Edited: Stephen23 on 17 Apr 2020
newfun = @(x,y)yourfun([x,y]);
fsurf(newfun)
Could be generalized for any number of inputs:
newfun = @(varargin)yourfun([varargin{:}]);

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!