在 matlab/octave 图中绘制创建网格的所有线
Plot all lines creating mesh in matlab/octave plot
我制作了这样的点图:
但现在我需要绘制点之间的所有线以及在变形下创建矩形网格(即连接到 x 和 y 方向上最近的邻居 - 而不是将所有点与所有点连接).
我怎样才能说服 matlab/octave 这样做?
我用过的代码在这里:
%T,H,W and k are defined above, it doesn't matter for the plot.
for ii=1:2:H
for jj=1:2:W
k=0.1;
x=jj;
y=ii;
U(ii,jj)=7*exp(0.05*(y-H))*cos(k*x-T);
V(ii,jj)=4*exp(0.1*(y-H))*sin(k*x-T);
X(ii,jj)=jj;
Y(ii,jj)=ii;
end
end
plot(X+U,Y+V,'k.');
你想要的情节很容易用mesh(X,Y,Z)
完成。
您的代码的问题是您的矩阵中有很多零。这些可能是故意的。在那种情况下,我可以提供另一种解决方案。但是 mesh()
连接矩阵中的相邻点。因此,在每隔一行和一行中使用 0 会将每个点连接到 (0,0)
。最简单的方法就是让你的 ii,jj
以 1 的步长增长。
%T,H,W and k are defined above, it doesn't matter for the plot.
H = 20;
W = 40;
T = 2*pi;
for ii=1:1:H
for jj=1:1:W
k=0.1;
x=jj;
y=ii;
U(ii,jj)=7*exp(0.05*(y-H))*cos(k*x-T);
V(ii,jj)=4*exp(0.1*(y-H))*sin(k*x-T);
X(ii,jj)=jj;
Y(ii,jj)=ii;
end
end
plot(X+U,Y+V,'k.');
hold on
mesh(X+U, Y+V, zeros(size(X)));
我制作了这样的点图:
但现在我需要绘制点之间的所有线以及在变形下创建矩形网格(即连接到 x 和 y 方向上最近的邻居 - 而不是将所有点与所有点连接).
我怎样才能说服 matlab/octave 这样做?
我用过的代码在这里:
%T,H,W and k are defined above, it doesn't matter for the plot.
for ii=1:2:H
for jj=1:2:W
k=0.1;
x=jj;
y=ii;
U(ii,jj)=7*exp(0.05*(y-H))*cos(k*x-T);
V(ii,jj)=4*exp(0.1*(y-H))*sin(k*x-T);
X(ii,jj)=jj;
Y(ii,jj)=ii;
end
end
plot(X+U,Y+V,'k.');
你想要的情节很容易用mesh(X,Y,Z)
完成。
您的代码的问题是您的矩阵中有很多零。这些可能是故意的。在那种情况下,我可以提供另一种解决方案。但是 mesh()
连接矩阵中的相邻点。因此,在每隔一行和一行中使用 0 会将每个点连接到 (0,0)
。最简单的方法就是让你的 ii,jj
以 1 的步长增长。
%T,H,W and k are defined above, it doesn't matter for the plot.
H = 20;
W = 40;
T = 2*pi;
for ii=1:1:H
for jj=1:1:W
k=0.1;
x=jj;
y=ii;
U(ii,jj)=7*exp(0.05*(y-H))*cos(k*x-T);
V(ii,jj)=4*exp(0.1*(y-H))*sin(k*x-T);
X(ii,jj)=jj;
Y(ii,jj)=ii;
end
end
plot(X+U,Y+V,'k.');
hold on
mesh(X+U, Y+V, zeros(size(X)));