关于MATLAB中contour用法的疑问

学习 时间:2026-04-03 09:05:32 阅读:1274
关于MATLAB中contour用法的疑问clear all;clc;q=2e-6;k=9e9;x=0,y=0;[X,Y]=meshgrid(-3:0.3:3);r=sqrt((X-x).^2+(Y-y).^2);V=k.*q.*(1./r);[Ex,Ey]=gradient(-V);E=sqrt(Ex.^2+Ey.^2);Ex=Ex./E;Ey=Ey./E;hold on;quiver(X,Y,Ex,Ey,0.4)plot(x,y,'bo',x,y,'g+')contour(X,Y,V)可以画出等势线最后要改成contour(X,Y,V,50)就不行了,求教各位大神这是为什么呢?我用的是MATLAB R2012b

最佳回答

虚心的小蝴蝶

虚心的太阳

2026-04-03 09:05:32

因为等高线全集中在一起了,改成contour(X,Y,V,linspace(min(V(:)),max(V(:)),50)); 再问: 改了,还是不行啊。。。 再答: 更正:等高线集中在一起的原因是靠近电荷的电场强度都接近无穷大了, 所以怎么分都不行。 所以限制一个最大值。clear all;clc;q=2e-6;k=9e9;x=0,y=0;[X,Y]=meshgrid(-3:0。3:3);r=sqrt((X-x)。^2+(Y-y)。^2);V=k。*q。*(1。/r);V_max = 50*min(V(:));V(V==Inf) = V_max;V(V>V_max) = V_max;[Ex,Ey]=gradient(-V);E=sqrt(Ex。^2+Ey。^2);Ex=Ex。/E;Ey=Ey。/E;hold on;quiver(X,Y,Ex,Ey,0。4)plot(x,y,'bo',x,y,'g+')contour(X,Y,V,50);

最新回答共有2条回答

  • 踏实的板凳
    回复
    2026-04-03 09:05:32

    因为等高线全集中在一起了,改成contour(X,Y,V,linspace(min(V(:)),max(V(:)),50)); 再问: 改了,还是不行啊。。。 再答: 更正:等高线集中在一起的原因是靠近电荷的电场强度都接近无穷大了, 所以怎么分都不行。 所以限制一个最大值。clear all;clc;q=2e-6;k=9e9;x=0,y=0;[X,Y]=meshgrid(-3:0。3:3);r=sqrt((X-x)。^2+(Y-y)。^2);V=k。*q。*(1。/r);V_max = 50*min(V(:));V(V==Inf) = V_max;V(V>V_max) = V_max;[Ex,Ey]=gradient(-V);E=sqrt(Ex。^2+Ey。^2);Ex=Ex。/E;Ey=Ey。/E;hold on;quiver(X,Y,Ex,Ey,0。4)plot(x,y,'bo',x,y,'g+')contour(X,Y,V,50);

上一篇 which floor do you live on?怎么回答

下一篇 如图是单基因遗传病的家系图,下列判断正确的是(  )