Plotting a function with difference between 2 vectors?

3 次查看(过去 30 天)
I want to plot where is the magnitude of the distance between 2 vectors: :
If I would implement this idea in Matlab:
[r1,r2] = meshgrid(linspace(-1,1,100));
phi = 1./(r1-r2);
mesh(r1,r2,phi)
what's nor really any kind of potential. Instead
[r1,r2] = meshgrid(linspace(-1,1,100));
phi = 1./sqrt((r1.^2+r2.^2));
mesh(r1,r2,phi)
is drawing the shape I sougth. Where does this difference originate from?

采纳的回答

Cris LaPierre
Cris LaPierre 2021-5-8
编辑:Cris LaPierre 2021-5-8
The shape is caused by where you can divide by 0. The difference is that, in the first case, this occurs along the diagonal line r1-r2=0. In the second case, the only time you divide by 0 is when r1=r2=0, hence the peak at a single point, (0,0).
  1 个评论
Niklas Kurz
Niklas Kurz 2021-5-9
编辑:Niklas Kurz 2021-5-9
yea, I guess u have to think about meshgrid(r1,r2) as a "vectorspace" spaned by the unit vecots r1 and r2 and not as indivdual vectors like I did.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by