How Can Be Randomly Shuffle Rows in MATLAB Matrix?
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
Contact Us