Output argument "varargout{2}" (and maybe others) not assigned during call error?

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)

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.

Categories

Tags

Asked:

on 29 Oct 2012

Community Treasure Hunt

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

Start Hunting!