Scilab Website | Contribute with GitLab | Scilab Community | ATOMS toolboxes
Scilab Online Help
2026.1.0 - Русский


matrix

изменение вектора или матрицы в матрицу иных размеров

Синтаксис

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

Аргументы

v

вектор, матрица или гиперматрица

n, m, m1, m2, ..

целые числа

sizes

вектор целых чисел

y

вектор, матрица или гиперматрица

Описание

Для вектора или матрицы с элементами n x m команда y=matrix(v,n,m) или аналогичная y=matrix(v,[n,m]) преобразует вектор (или матрицу) v в матрицу размерами n x m постолбцовой установкой элементов v.

Если один из размеров m или n равен -1, то он автоматически присваивается отношению size(v,'*') к другому размеру.

Для гиперматрицы такой, что prod(size(v))==prod(sizes) команда y=matrix(v,sizes) (или аналогичная y=matrix(v,n1,n2,...nm)) преобразует v в матрицу или гиперматрицу постолбцовой установкой (первый размер меняется первым) элементов v. y=matrix(v,sizes) даёт обычную матрицу, если размеры являются скалярами или двумерным вектором.

  • y = v(:) эквивалентно matrix(v,-1, 1)

  • matrix() может быть перегружена для любого типа mlist() с функцией, названной %<type>_matrix(v,s,..), с, по крайней мере, двумя входными аргументами.

Примеры

С обычной матрицей десятичных чисел:

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)
// в гиперматрицу:
matrix(a, 3, 2, 2)

С текстами:

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  !
    

С гипермассивом cell-элементов:

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
    

С массивом структур:

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
    

Смотрите также

  • двоеточие (:) — оператор "двоеточие"
  • resize_matrix — trim or/and extend (and cast) a matrix or hypermatrix
  • ndims — количество размерностей массива
  • size — размер объекта
  • выделение — выделение элемента матрицы или списка
  • транспонирование — (') оператор транспонирования, разграничитель символьной строки
  • квадратные скобки [..] — Конкатенация. Получатели присвоения. Результаты функции.
  • матрицы — объект Scilab'а, матрицы в Scilab'е
  • гиперматрицы — объект Scilab'а, N-мерная матрица в Scilab'е
  • makecell — Creates a cell array.
  • struct — строит структуру или массив структур
  • mlist — объект Scilab'а, определение матричноориентированного типизированного списка
Report an issue
<< flipdim Манипуляции с матрицами permute >>

Copyright (c) 2022-2026 (Dassault Systèmes S.E.)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue May 19 14:01:42 CEST 2026