Output argument "varargout{2}" (and maybe others) not assigned during call error?
Show older comments
Trying to plot contour lines with the associated gradient as arrows using the gradient function. My code is:
x = (-2:0.2:4);
y = (-2:0.2:2);
[x1 y1] = meshgrid(x,y);
h = (exp(-x1.^2-y1.^2))+0.5.*exp((-1.*(x1-2).^2)-y1.^2);
[C h]= contour (x,y,h);
hold all;
[hx,hy] = gradient(h);
quiver(x1, y1, hx, hy, 0.8)
I think I'm only getting one output from the gradient function, but shouldn't I be getting two?
Thanks, Chris.
Answers (1)
Sean de Wolski
on 29 Oct 2012
2 votes
The problem is that you overwrite 'h' with the handle to the contourgroup so that h is no longer a two-dimensional matrix. Thus it cannot calculate the various components of the gradient and this error is thrown.
I agree that this error message could probably be better, I'll let our development team know.
1 Comment
Chris Corbett
on 29 Oct 2012
Categories
Find more on Contour Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!