MATLAB: Quiver lines on contour not showing

contourquiver

Hi there, I have a contour plot which I successfully generated. However when I turn on the quiver lines, they do not show up on the plot. Below is my code:
[x,y] = meshgrid([1:0.1:6],[1:0.1:6]); %Creates axis.
f = 8.9875517873681764*10^9;
PC1 = 1e-6; %Charge of point one.
PC2 = 1e-6; %Charge of point two.
PC3 = 0.5e-6; %Charge of point three.
n = 20; %N-number of levels.
%Charge of individual points.
Charge1 = (f.*PC1)./sqrt((x-3).^2+(y-3).^2);
Charge2 = (f.*PC2)./sqrt((x-5).^2+(y-3).^2);
Charge3 = (f.*PC3)./sqrt((x-4).^2+(y-4).^2);
Sum = Charge1-Charge2+Charge3;
figure(1)
[px,py]=gradient(Sum);
contour(x,y,Sum,n)
hold on
quiver(x,y,px,py)
hold off
Does anyone have an idea why the quiver lines are not showing? Thanks.

Best Answer

There seems to be a problem with the way you’re calculating the gradient. Making these changes will allow you to see the vectors and the contour plot (that I temporarily turned into contourf to make it visible). I will defer to you to determine what you need to do to fix it with the vector scaling turned back on:
[px,py]=gradient(Sum, 1E+4, 1E+4); % Set Derivative Intervals
figure(1)
contourf(x,y,Sum,n)
hold on
quiver(x,y,px,py,0) % Turn Off Scaling
hold off