显示点Matlab的坐标

时间:2014-12-01 11:32:38

标签: matlab random plot

我想在我的代码运行时随机显示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)

时,代码似乎才有用

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)'; xoffsetyoffset来控制标签位置;和fsize来定义字体大小。请注意,某些标签可能部分重叠。您可以使用较小的fsize值来减少重叠的可能性。