Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Fonctions Elémentaires > Matrice - façonnage > matrix

matrix

redimensionne un tableau, à nombre et ordre inchangés des éléments

Syntaxe

y = matrix(v, m, n)
y = matrix(v, m1, m2, m3, ..)
y = matrix(v, [sizes])

Paramètres

v

Tout type de conteneur matriciel (matrice homogène de tous types de données ; tableau de cellules ; tableau de structures), à nombre quelconque de dimensions (vecteur, matrice, hypertableau N-dimensionnel), de toutes tailles.

n, m, m1, m2, ..

entiers positifs : nouvelles tailles attendues après redimensionnement. Une des tailles peut être fixée à -1.

sizes

vecteur d'entiers positifs : nouvelles tailles à fixer.

y

tableau redimensionné, avec y(i)==v(i) et size(y,"*")==size(v,"*").

Description

Pour un tableau ou un hypertableau v à n x m éléments principaux, y = matrix(v, n, m) ou y = matrix(v, [n,m]) redimensionne v en une matrice ou un tableau 2D de taille n x m, par indice linéarisé croissant des éléments de v.

De même, pour un tableau ou un hypertableau v à m1 x m2 x m3 .. éléments principaux, y = matrix(v, m1, m2, m3,..) ou y = matrix(v, [m1 m2 m3..]) redimensionne v en une hypermatrice ou un hypertableau à m1 lignes, m2 colonnes, m3 .. pages, ...etc.

Dans tous les cas, l'ordre linéaire des éléments dans y est le même que celui dans v : pour tout 1 <= i <= size(v,"*"), y(i) = v(i).

Si une seule des tailles n ou n ou m1 etc.. est fixée à -1, sa valeur effective est automatiquement fixée telle que le nombre total des éléments du tableau est inchangé.

  • y = v(:) est équivalent à matrix(v,-1, 1)
  • L'usage de matrix() peut être étendu à tout type de mlist(), en définissant une function %<type>_matrix(v,s,..) prenant au moins 2 paramètres d'entrée.

Exemples

Avec une matrice numérique :

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)

Avec une matrice de caractères :

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  !

Avec un hypertableau de cellules :

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

Avec un tableau de structures :

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

Voir aussi

  • colon (:) — Générateur de séries. Adresse tous les éléments d'une liste ou d'un tableau
  • resize_matrix — élague et/ou étend (et convertit) une matrice ou une hypermatrice
  • ndims — number of dimensions of an array
  • size — taille d'un objet
  • extraction — extraction à partir d'une matrice ou d'une liste
  • transposition — opérateur de transposition, délimiteur de chaîne de caractères
  • brackets [..] — Concaténation. Récipients d'une affectation. Résultats d'une function
  • matrices — Objet Scilab, matrices
  • hypermatrices — Objet Scilab, matrices à N dimensions
  • makecell — Creates a cell array.
  • struct — creer une struct
  • mlist — Objet Scilab, définition d'une liste typée
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:15:26 CET 2018