Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
permute
переставляет размерности массива
Синтаксис
y = permute(x, dims)
Аргументы
- x
массив с любым числом размерностей (0, 1, 2 или любым числом n>2) любого типа данных: логических, целочисленных десятичных вещественных или комплексных чисел, полиномов, рациональных значений, массива структур, cell-массива.
- dims
допустимая перестановка
1:n>=nmin
, гдеn
- это количество размерностей желаемого массива, по меньшей мереnmin = ndims(x)
.Размерность
#i
вy
была размерностью#dims(i)
вx
.- y
массив, у которого содержимое массива
x
, с одинаковыми, не переставленными размерами.
Описание
Переставляет размерности массива согласно dims
.
Любые размерности в конце последовательности результата y , которые
оказываются одноэлементным множеством (имеют новый размер равный 1, произошедший из
предыдущей размерности неединичного размера не в конце последовательности),
автоматически игнорируются (удаляются). |
Главным образом permute() представляет интерес, когда идёт работа с
гиперматрицами. Чтобы просто транспонировать матрицу (переставить местами их
строки и столбцы и наоборот), то лучше использовать операторы .
' или ' . |
Примеры
// Пример 1: матрица становится гиперматрицей, одна сторона которой имеет размер // равный единице (здесь количество строк) x = [1 2 3; 4 5 6] y = permute(x,[3 1 2])
--> x = [1 2 3; 4 5 6] x = 1. 2. 3. 4. 5. 6. --> y = permute(x,[3 1 2]) y = (:,:,1) 1. 4. (:,:,2) 2. 5. (:,:,3) 3. 6.
// Пример 2: С закодированными целыми числами x = int8(matrix(1:24, [3 4 2])) y = permute(x, [2 3 1])
--> x = int8(matrix(1:24, [3 4 2])) x = (:,:,1) 1 4 7 10 2 5 8 11 3 6 9 12 (:,:,2) 13 16 19 22 14 17 20 23 15 18 21 24 --> y = permute(x, [2 3 1]) y = (:,:,1) 1 13 4 16 7 19 10 22 (:,:,2) 2 14 5 17 8 20 11 23 (:,:,3) 3 15 6 18 9 21 12 24
// Пример 3: x = matrix(1:8, [2 1 4]) y = permute(x, [3 1 2]); // Размерность 1 была третьей: размер = 4 = новое количество строк // Размерность 2 была первой: размер = 2 = новое количество строк // Размерность 3 была второй: размер = 1 = новое количество страниц y
Смотрите также
История
Version | Description |
6.0 | Расширение для рациональных значений. |
Report an issue | ||
<< matrix | Манипуляции с матрицами | pertrans >> |