在 MATLAB 上创建正方形网格时如何去除 'fishbowl' 效果?
How can I remove the 'fishbowl' effect when creating a square grid on MATLAB?
我一直在尝试创建一个表示具有 8 个节点的正方形网格的图形。我一直在使用 Mathworks here:
给出的代码
n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'omitselfloops');
p = plot(G);`
绘制结果为:
但我只是想知道是否可以使图像不那么弯曲。为了使图形看起来更'uniform'并且所有边的长度相同。
图 G
不包含节点的坐标,因此 MATLAB 基本上必须“猜测”将它们放在哪里(并且做得非常好)。您可以使用附加参数 XData
、YData
(和 ZData
)将坐标添加到您的节点(参见 documentation),因此在您的情况下您可能想要使用例如meshgrid
:
n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'omitselfloops');
[x,y] = meshgrid(1:n, 1:n);
p = plot(G, 'XData',x(:), 'YData',y(:));
我一直在尝试创建一个表示具有 8 个节点的正方形网格的图形。我一直在使用 Mathworks here:
给出的代码n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'omitselfloops');
p = plot(G);`
绘制结果为:
但我只是想知道是否可以使图像不那么弯曲。为了使图形看起来更'uniform'并且所有边的长度相同。
图 G
不包含节点的坐标,因此 MATLAB 基本上必须“猜测”将它们放在哪里(并且做得非常好)。您可以使用附加参数 XData
、YData
(和 ZData
)将坐标添加到您的节点(参见 documentation),因此在您的情况下您可能想要使用例如meshgrid
:
n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'omitselfloops');
[x,y] = meshgrid(1:n, 1:n);
p = plot(G, 'XData',x(:), 'YData',y(:));