Reorder matrix rows or columns
Math Functions / Matrices and Linear Algebra / Matrix Operations
dspmtrx3
The Permute Matrix block reorders the rows or columns of MbyN
input matrix A
as specified by indexing input P
.
When the Permute parameter is set to Rows
,
the block uses the rows of A
to create a new matrix
with the same column dimension. Input P
is a lengthL
vector whose elements determine where each row from A
should
be placed in the LbyN output matrix.
% Equivalent MATLAB code y = [A(P(1),:) ; A(P(2),:) ; A(P(3),:) ; ... ; A(P(end),:)]
For row permutation, the block treats lengthM unoriented vector
input at the A
port as an Mby1 matrix.
When the Permute parameter is set to Columns
,
the block uses the columns of A
to create a new
matrix with the same row dimension. Input P
is
a lengthL vector whose elements determine where each column from A
should
be placed in the MbyL output matrix.
% Equivalent MATLAB code y = [A(:,P(1)) A(:,P(2)) A(:,P(3)) ... A(:,P(end))]
For column permutation, the block treats lengthN unoriented
vector input at the A
port as a 1byN matrix.
When an index value in input P
references
a nonexistent row or column of matrix A
, the block
reacts with the behavior specified by the Invalid permutation
index parameter. The following options are available:
Clip index
— Clip
the index to the nearest valid value (1 or M for row permutation,
and 1 or N for column permutation), and do not issue
an alert. Example: For a 3by7 input matrix, a column index of 9
is clipped to 7, and a row index of 2 is clipped to 1.
Clip and warn
—
Display a warning message in the MATLAB^{®} command window, and clip
the index as described above.
Generate error
—
Display an error dialog box and terminate the simulation.
When length of the permutation vector P
is
not equal to the number of rows or columns of the input matrix A
,
you can choose to get an error dialog box and terminate the simulation
by selecting Error when length of P is not equal to Permute
dimension size.
In the modelmodel below, the top Permute Matrix block places the second row of the input matrix in both the first and fifth rows of the output matrix, and places the third row of the input matrix in the three middle rows of the output matrix. The bottom Permute Matrix block places the second column of the input matrix in both the first and fifth columns of the output matrix, and places the third column of the input matrix in the three middle columns of the output matrix.
As shown in the example above, rows and columns of A
can
appear any number of times in the output, or not at all.
Method of constructing the output matrix; by permuting rows or columns of the input.
When set to Onebased
, a value of 1
in
the permutation vector P
refers to the first row
or column of the input matrix A
. When set to Zerobased
,
a value of 0
in P
refers to
the first row or column of A
.
Response to an invalid index value. Tunable.
Option to display an error dialog box and terminate the simulation
when the length of the permutation vector P
is
not equal to the number of rows or columns of the input matrix A
.
Port  Supported Data Types 

A 

P 

Output 

Submatrix  DSP System Toolbox 
Variable Selector  DSP System Toolbox 
permute  MATLAB 
See Reorder Channels in Multichannel FrameBased Signals for related information.