我想在我的代码运行时随机显示30x30网格中的点,总共有10个点。将10个点绘制在30×30的区域中,定义为A1。 x从0到30,y从0到30.我想要这10个点的坐标
A1 = 30; % area defined as 30 X 30 grid
N = 10; % 10 tags
% Generate x and y position of tags
for ii = 1:N
xtemp = A1*rand(1,1);
ytemp = A1*rand(1,1);
end
plot (xtemp,ytemp)
grid on
当我运行代码时,我获得了超过10个点,我想要的只是图表上的10个点以及选择显示的每个随机点的坐标。当矩阵不是(1,1)
时,代码似乎才有用答案 0 :(得分:3)
你不需要循环。它在每次迭代中都是一样的,你只使用最后一次迭代的结果。
要绘制单个点,请使用'.'
或'o'
等标记。这是作为plot
的第三个参数传递的:
A1 = 30;
N = 10;
xtemp = A1*rand(1,N);
ytemp = A1*rand(1,N);
plot(xtemp, ytemp, '.')
grid on
axis([0 A1 0 A1])
添加显示每个点坐标的文本标签:
xoffset = 0;
yoffset = -1;
fsize = 8;
temp_str = mat2cell(num2str([xtemp(:) ytemp(:)], '(%.2f,%.2f)'), ones(1,N));
text(xtemp+xoffset, ytemp+yoffset, temp_str, 'fontsize', fsize)
您可能想要更改格式说明符'(%.2f,%.2f)'
; xoffset
和yoffset
来控制标签位置;和fsize
来定义字体大小。请注意,某些标签可能部分重叠。您可以使用较小的fsize
值来减少重叠的可能性。