如何在matlab中创建多组随机值?

时间:2017-08-28 19:25:46

标签: matlab

我想创建4组随机值,​​其中每组包含指定间隔内的值。假设这些组彼此相距一定距离。我已经完成了这个(代码附件),但我觉得这个工作有点太长了。请提出一些有效的方法来做到这一点。

X = randi([0,125],1,15);
Y = randi([0,125],1,15);
X1 = randi([0,250],1,15);
Y1 = randi([575,875],1,15);
X2 = randi([625,875],1,15);
Y2 = randi([250,500],1,15);
X3 = randi([875,1000],1,5);
Y3 = randi([875,1000],1,5);
X = horzcat(X,X1,X2,X3);
Y=horzcat(Y,Y1,Y2,Y3);
scatter(X,Y,'filled, labeled')

1 个答案:

答案 0 :(得分:1)

为了获得一些加速并使代码更紧凑,这里有一个 -

d0 = randi([0,125],4,15);
d1 = randi([0,250],3,15);
d2 = randi([575, 875],1,15);
X = [d0(1,:), d1(1,:), d1(2,:)+625, d0(3,:)+875];
Y = [d0(2,:), d2, d1(3,:)+250, d0(4,:)+875];

基本上有3个范围,这就是我们使用的随机数组 - d0,d1,d2然后简单地切片,添加适当的偏移量和水平堆叠以获得两个输出阵列。

使用100000次迭代,我得到的时间 -

------------- Original method ------------------------------
Elapsed time is 1.267933 seconds.
------------- Proposed method ------------------------------
Elapsed time is 1.068410 seconds.