Quiver lines on contour not showing

3 次查看(过去 30 天)
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.

采纳的回答

Star Strider
Star Strider 2016-5-20
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Vector Fields 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by