Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
matrix
reshapes an array with the same number and order of components
Syntax
y = matrix(v, m, n) y = matrix(v, m1, m2, m3, ..) y = matrix(v, [sizes])
Arguments
- v
Any matricial container (regular matrix of any data type; cells array; structures array), of any number of dimensions (vector, matrix, hyperarray), with any sizes.
- n, m, m1, m2, ..
positive integers: new expected sizes after reshaping. One of them may be set to
-1
.- sizes
vector of positive integers: new expected sizes
- y
the reshaped array, with
y(i)==v(i)
andsize(y,"*")==size(v,"*")
.
Description
For an array or hyperarray v
with n
x
m
entries, y = matrix(v, n, m)
or
y = matrix(v, [n,m])
transforms v
into a
n
x m
matrix, by stacking columnwise
the entries of v
.
Similarly, for an array or hyperarray v
with m1
x
m2
x m3 ..
entries,
y = matrix(v, m1, m2, m3,..)
or
y = matrix(v, [m1 m2 m3..])
transforms v
into a hyperarray with m1
rows, m2
columns,
m3 ..
layers, ...etc.
In all cases, the linear order of components in y
is the same as in
v
: For any 1 <= i <= size(v,"*")
,
y(i)=v(i)
.
If one of the sizes m
or n
or m1
etc.. is equal to -1, its actual value is automatically set such that the total number
of components is unchanged.
|
Examples
With a regular matrix of decimal numbers:
a = [1 3 5 7 9 11; 2 4 6 8 10 12] matrix(a, 4, 3) matrix(a, [3 4]) matrix(a, 3, -1) // into an hypermatrix: matrix(a, 3, 2, 2)
With texts:
t = strsplit("a":"x",1:23)' matrix(t,[3,8])
--> t = strsplit("a":"x",1:23)' t = !a b c d e f g h i j k l m n o p q r s t u v w x ! --> matrix(t,[3,8]) ans = !a d g j m p s v ! !b e h k n q t w ! !c f i l o r u x !
With a cells hyperarray:
c = makecell([2,3,2], %t,%z, %i,"abc", list(%pi,"a"), int8(23),cos,sind,"àèìòù",corelib, 0.5, 1/%z^2) rc = matrix(c, 3, 4) rc(8)==c(8) rc{8}.getshell
c = (:,:,1) [1x1 boolean] [1x1 polynomial] [1x1 constant] [1x1 string ] [ list ] [1x1 int8 ] (:,:,2) [ 1 fptr ] [ 1 function] [1x1 string] [ library] [ 1x1 constant] [ r ] --> rc = matrix(c, 3, 4) rc = [1x1 boolean ] [ list ] [ 1 fptr ] [1x1 constant] [1x1 string ] [1x1 constant] [ library ] [1x1 string ] [1x1 polynomial] [1x1 int8 ] [ 1 function] [ r ] --> rc(8)==c(8) ans = T --> rc{8}.getshell ans = cmd
With a structures array:
clear s s(3,6).r = %pi matrix(s,2,9)
--> s(3,6).r = %pi s = 3x6 struct array with fields: r --> matrix(s,2,9) ans = 2x9 struct array with fields: r
See also
- colon (:) — Ranging operator. Addresses all elements along an array dimension or of a list.
- resize_matrix — trim or/and extend (and cast) a matrix or hypermatrix
- ndims — number of dimensions of an array
- size — size of objects
- extraction — matrix and list entry extraction
- transposition — (') transpose operator, string delimiter
- brackets [..] — Concatenation. Recipients of an assignment. Results of a function
- matrices — Scilab objects, matrices in Scilab
- hypermatrices — a Scilab object, N dimensional matrix in Scilab
- makecell — Creates a cell array.
- struct — Builds a structure or an array of structures
- mlist — Scilab object, matrix oriented typed list definition
Report an issue | ||
<< flipdim | Matrix - shaping | permute >> |