[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Shuffling elements in a dataset
From: |
Marvin Vis |
Subject: |
Re: Shuffling elements in a dataset |
Date: |
Fri, 21 Feb 97 16:13:31 MST |
> I have the need to randomize the order (shuffle) of very large
> datasets. The way I devise, randonly sampling with elimination, is
> not very efficient. Is there a better way, using octave's matrix
> manipulation?
>
> Better way: perhaps creating a vector of unique indexes? but how to
> do this?
>
> idx = 1:rows(data);
> now shuffle idx
> new_data = data(idx,:)
>
> Of course, this it is the same problem in one dimension...
I've done something along the lines of the following before:
x = <data> ....original data vector that you want to randomize
n = rand(length(x),1);
[garbage index] = sort(n);
x_randomized = x(index);
You should be able to extend this to more dimensions as well....sort() is
relatively quick, so I've found this to be a decent approach.
M.