如何使用MATLAB rand函数在给定的网格中生成随机点?

时间:2019-01-07 01:06:20

标签: matlab random

我正在尝试在18 x 16的网格上生成随机点,其中x范围从-9到9,y范围从-8到8。
  我必须通过使用MATLAB rand函数生成两个数字来做到这一点
 范围从0到1(一个用于x坐标,一个用于y坐标),然后将其缩放到网格的大小。我该怎么做?我知道有更简单的方法可以解决此问题,但这是我必须要做的。 谢谢!

1 个答案:

答案 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