Mam Martixa i chcę przetasować jego element.shuffle matrix element w matlab
x=[1 2 5 4 6 ]
po Shuffle (coś takiego)
x=[2 4 6 5 1]
jest Matlab posiada funkcję dla niego? w php array_shuffle zrób to.
Mam Martixa i chcę przetasować jego element.shuffle matrix element w matlab
x=[1 2 5 4 6 ]
po Shuffle (coś takiego)
x=[2 4 6 5 1]
jest Matlab posiada funkcję dla niego? w php array_shuffle zrób to.
uzyskać tasuje wskaźniki wykorzystujące randperm
idx = randperm(length(x));
indeksów użyć, aby uzyskać tasuje Vector,
xperm = x(idx);
Jako alternatywny do randperm
, można również użyć randsample
fro m zestaw narzędzi statystycznych.
y = randsample(n,k)
zwracak
-by-1
wektory
wartości próbą równomiernie losowo, bez zastąpienia, z całkowitymi1
don
.
Należy pamiętać, że jest to "bez wymiany" (domyślnie). Jeśli więc ustawisz k
jako length(x)
, będzie to równoznaczne z losowym przetasowaniem wektora. Na przykład:
x = 1:5;
randsample(x,length(x))
%ans =
% 4 5 3 1 2
Lubię to więcej niż randperm
, ponieważ jest łatwo rozszerzalny do różnych zastosowań. Na przykład, aby losowo narysować 3 elementy z x
(np. Rysunek z kubełka z elementami skończonymi), wykonujesz randsample(x,3)
. Podobnie, jeśli chcesz narysować 3 cyfry, gdzie alfabet składa się z elementów x
, ale pozwalają na powtórzenia, robisz randsample(x,3,true)
.