/ /どうやってmatlabにランダムな値の複数のセットを作るの? - matlab

どのようにmatlabでランダムな値の複数のセットを作成するには? - 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は1

スピードを上げてコードをよりコンパクトにするために、ここに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 それから単純にスライスし、適切なオフセットを加え、水平方向に積み重ねて2つの出力配列を取得します。

100000 繰り返し、私が得るタイミング -

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