Open In App

How Can Be Randomly Shuffle Rows in MATLAB Matrix?

Last Updated : 02 Sep, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to discuss the “random shuffling of rows in a Matrix ” which can be done using size() and randperm() function. 

Functions Used

1) size(): The size() function is used to return the sizes of each dimension of the specified array “X” or the size of the specified matrix “X”.

Syntax:

size(X)
[m,n] = size(X)

size(X,dim)
[d1,d2,d3,...,dn] = size(X)

Here,

size(X) returns the sizes of each dimension of the specified array “X” in a vector d with ndims(X) elements.

[m,n] = size(X) returns the size of the specified matrix “X” in the separate variables m and n.

size(X,dim) returns the size of the dimension of “X” specified by scalar dim.

[d1,d2,d3,…,dn] = size(X) returns the sizes of the first n dimensions of the specified array “X” in separate variables.

Parameters: This function accepts two parameters which are illustrated below:

  • X: It is the specified array or matrix or dimension.
  • dim: It is the scalar value for the specified dimension “X”

2) randperm(): The randperm() function is used for the random permutation of integers.

Syntax:

randperm(n)
randperm(n,k)

Here,

randperm(n) returns a row vector that contains a random permutation of the integers from “1” to “n” without of any repetition.

randperm(n,k) returns a row vector that contains “k” number of unique integers that are selected randomly from 1 to n.

Parameters: This function accepts two parameters which are illustrated below:

  • n: This is the specified number up to which a random number is going to be generated from “1” without any repetition.
  • k: It is the number of unique integers that are selected randomly from 1 to n.

Below examples are for the “random shuffling of columns in a Matrix ” which can be done using the combination of the size() and randperm() functions:

Example 1 

Matlab




% MATLAB code for random shuffling
% of columns in a Matrix
A = [1 2 3   % Specifying a 3*3 matrix
     4 5 6
     7 8 9];
 
% Calling the size() function over
% the above matrix which gives a row vector
% whose elements are the lengths of the
% corresponding dimensions of A
rows = size(A);
 
% Calling the randperm() function for the
% random permutation of the above matrix
% over its dimension of 3*3
P = randperm(rows);
 
% Getting the row wise randomly shuffled matrix
B = A(P, : )


Output

B =
  1   2   3
  7   8   9
  4   5   6

Example 2

Matlab




% MATLAB code for random shuffling
% of columns in a Matrix
A = [1 2 3 4  % Specifying a 4*4 matrix
     5 6 7 8
     9 10 11 12
     13 14 15 16];
      
% Calling the randperm() function to
% randomly shuffle the rows of matrix A
A(randperm(size(A, 2)), : )


Output

ans =
   9   10   11   12
   1    2    3    4
   5    6    7    8
  13   14   15   16


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads