matrixToVector¶
Parameters¶
Parameter label |
I/O type |
Data type |
Mandatory parameter? |
Default value |
|---|---|---|---|---|
|
input |
matrix (2D numpy array |
yes |
N/A |
|
input |
string ( |
no |
|
|
input |
scalar |
no |
0 |
|
input |
string ( |
no |
|
|
output |
vector |
N/A |
N/A |
Functionality¶
Module converts a 2D numpy array (matrix) into a 1D numpy array (vector).
If mode="diag", the main diagonal (diagOffset=0) or a side diagonal (diagOffset<>0) is stored as outputVec.
Values of diagOffset smaller than zero refer to the side diagonals below the main diagonal.
If mode="upperTriangular", the upper triangular matrix is stacked row-wise into outputVec.
Similarly, if mode="lowerTriangular", the lower triangular matrix is stacked row-wise into outputVec.
If mode="stackToVector", the matrix is stacked into outputVec row-wise (stackOrientation="rows") or column-wise (stackOrientation="cols").
Here are some examples:
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "diag"
diagOffset = 0
...
outputVec = [1,6,11,16]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "diag"
diagOffset = 2
...
outputVec = [2,7,12]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "diag"
diagOffset = -1
...
outputVec = [5,10,15]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "upperTriangular"
diagOffset = 0
...
outputVec = [1,2,3,4,6,7,8,11,12,16]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "upperTriangular"
diagOffset = 1
...
outputVec = [2,3,4,7,8,12]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "upperTriangular"
diagOffset = 1
...
outputVec = [2,3,4,7,8,12]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "lowerTriangular"
diagOffset = 0
...
outputVec = [1,5,6,9,10,11,13,14,15,16]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "lowerTriangular"
diagOffset = -1
...
outputVec = [5,9,10,13,14,15]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "stackToVector"
stackOrientation = "rows"
...
outputVec = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
inputVec = [np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])]
mode = "stackToVector"
stackOrientation = "cols"
...
outputVec = 1,5,9,13,2,6,10,14,3,7,11,15,4,8,12,16]