我正在尝试在18 x 16的网格上生成随机点,其中x范围从-9到9,y范围从-8到8。
我必须通过使用MATLAB rand函数生成两个数字来做到这一点
范围从0到1(一个用于x坐标,一个用于y坐标),然后将其缩放到网格的大小。我该怎么做?我知道有更简单的方法可以解决此问题,但这是我必须要做的。
谢谢!
答案 0 :(得分:0)
以下代码可帮助您执行所需的操作
%% initialization
L=18; % Length of the grid
W=16; % Width of the grid
random_points=randi(2,L,W)-1; % generating random 0-1 on an L*W grid
%% plotting the random points on grid
for i=1:L
for j=1:W
if random_points(i,j)==1
plot(i,j,'bo')
hold on
else
plot(i,j,'r.')
hold on
end
end
end
还可以通过运行以下代码来创建有关上述代码如何产生随机网格的动画
%% initialization
L=18; % Length of the grid
W=16; % Width of the grid
%% generating and plotting the random points on the grid forever
while 1
random_points=randi(2,L,W)-1; % generating random 0-1 on an L*W grid
for i=1:L
for j=1:W
if random_points(i,j)==1
plot(i,j,'bo')
hold on
else
plot(i,j,'r.')
hold on
end
end
end
pause(0.01)
hold off
end
p.s。如果要停止执行代码,只需在命令窗口中按 Ctrl+C
。