Chcę utworzyć 4 zestawy losowych wartości gdziekażdy zestaw zawiera wartości w określonym przedziale czasu. Zestawy mają znajdować się w pewnej odległości od siebie. Zrobiłem to już (dołączony kod), ale myślę, że to trochę za długo na tę pracę. Proszę zaproponować skuteczną metodę, aby to zrobić.
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")
Odpowiedzi:
1 dla odpowiedzi № 1Aby przyspieszyć i uczynić kod bardziej zwartym, oto jeden -
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];
W zasadzie są 3
zakresów i to jest to, czego używamy, aby mieć losowe tablice - d0,d1,d2
a następnie po prostu krojenie, dodawanie odpowiednich odsunięć i układanie w poziomie, aby uzyskać dwie tablice wyjściowe.
Z 100000
iteracje, czasy, które otrzymuję -
------------- Original method ------------------------------
Elapsed time is 1.267933 seconds.
------------- Proposed method ------------------------------
Elapsed time is 1.068410 seconds.