如何在matlab中绘制正方形的等间距点。如下图所示
. . . .
. . . .
. . . .
. . . .
下图是4x4尺寸的正方形。我想引用每个点并存储在变量[Point(i).xcord,Point(i).ycord]中,如下图所示:
For i=1:1:16
Point(i).xcord = <What expression goes here>
Point(i).ycord = <what expression goes here>
plot(Point(i).xcord, Point(i).ycord)
如上所示,为了获得网格形式的输出,任何人都可以解释一种简单的方法。
答案 0 :(得分:2)
您可以按如下方式使用ndgrid
:
N = 4; % Square size
[xcord, ycord] = ndgrid(1:N); % generate all combinations. Gives two matrices
plot(xcord(:), ycord(:), '.') % plot all points at once
axis([0 N+1 0 N+1]) % set axis limits
axis square % make actual sizes of both axes equal
xcord
,ycord
是包含点坐标的矩阵。这比在代码中使用struct数组要快。您可以将其编入索引,例如xcord(2,3)
。
如果需要转换为struct数组,请使用
Point = struct('xcord', num2cell(xcord(:)), 'ycord', num2cell(ycord(:)));