Code covered by the BSD License  

Highlights from
SHAKE

4.25

4.2 | 4 ratings Rate this file 25 Downloads (last 30 days) File Size: 2.11 KB File ID: #10067

SHAKE

by

 

20 Feb 2006 (Updated )

Randomize a matrix along one dimension (ver 4 .1 may 2008)

| Watch this File

File Information
Description

SHAKE - Randomize a matrix along a specific dimension

Y = SHAKE(X) randomizes the order of the elements in each column of the 2D matrix. For N-D matrices it randomizes along the first dimension.
 
SHAKE(X,DIM) randomizes along the dimension DIM.

[Y, I, J] = SHAKE(...) return index matrices I and J so that Y = X(I) and X = Y(J).
 
Example:
  A = [1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12] ; % see <slm> on the FEX ...
  Dim = 2 ;
  [B, ID] = shake(A,Dim) % ->, e.g.
  % 3 2 1
  % 6 4 5
  % 7 8 9
  % 11 10 12%
 
See also RAND, SORT, RANDPERM
and RANDSWAP on the File Exchange

Latest version: 4.1 (may 2008)

Acknowledgements

This file inspired Randswap and Permute A Grouped Vector.

MATLAB release MATLAB 6.5 (R13)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (6)
29 Aug 2014 J G

Thanks, this is just what I needed. However I'm finding it to be quite slow. I have ~10000 rows and 5 columns, and I am randomising by column (Dim = 1). Do you have any suggestions as to how to speed this up? Is doing each column vector separately faster?

12 Oct 2006 Jos (author)

New version: 3.0 (oct 2006)

01 Jun 2006 Gregory Anderson

Simple? Yes, but I couldn't figure out how to do it on my own, and it does exactly what it's supposed to do, so thanks, Jos.

06 May 2006 Jos vdG

Which tests? Note that <shake> simply uses the built-in matlab <rand> function ...

01 Apr 2006 Peter He

Tests show that the quality of randomization is not good. Cannot be trusted in serious simulations.

21 Feb 2006 John D'Errico

Its not shaky at all. Certainly not its documentation, which is as clear as even I could ask for.

Updates
24 Aug 2006

SHAKE can now randomize along any dimension.

12 Oct 2006

new algorithm
return 2 indices

13 Dec 2006

dec 2006 - fixed major bug in functionality

Contact us