Перестановки в массивах и изменения их формы¶
Многие функции Engee используют элементы массива и придают им другую форму или последовательность. Это может быть полезно для предварительной обработки данных, для последующих вычислений или анализа данных.
Изменение формы¶
Функция reshape
изменяет размер и форму массива. Например, преобразуйте матрицу размером 3 $\times$ 4 в матрицу размером 2 $\times$ 6.
A = [1 4 7 10; 2 5 8 11; 3 6 9 12]
B = reshape(A,2,6)
Используя элементы из A можно создать многомерный массив, который будет содержать 3 матрицы размером 2 $\times$ 2.
C = reshape(A,2,2,3)
Транспонирование и переворачивание¶
Обычной задачей в линейной алгебре является работа с транспонированием матрицы, которая превращает строки в столбцы, а столбцы - в строки. Для этого используйте функцию transpose
или оператор '
.
A = rand(3, 3)
A'
B = [1+im 1-im; -im im]
transpose(B)
Функция reverse
перемещает строки вверх-вниз и столбцы слева направо в зависимости от значения ключевого слова dims
.
dims = 1 # Работа со строками
dims = 2 # Работа со столбцами
A = [1 2; 3 4]
B = reverse(A, dims=1)
С = reverse(A, dims=2)
Смещение и поворот¶
Вы можете сдвинуть элементы массива на определенное количество позиций с помощью функции circshift
. Например, создайте матрицу размером 3 $\times$ 4 и сдвиньте ее столбцы вправо на 2. Второй аргумент [0 2] сообщает circshift
, что нужно сдвинуть строки на 0 мест и столбцы на 2 места вправо.
A = [1 2 3 4; 5 6 7 8; 9 10 11 12]
B = circshift(A,[0 2])
Чтобы сдвинуть строки из A вверх на 1 и сохранить столбцы на месте, укажите второй аргумент как [-1 0].
C = circshift(A,[-1 0])
A = [1 2; 3 4]
Сортировка¶
Сортировка данных в массиве также является ценным инструментом. Например, функция sort
сортирует элементы каждой строки или столбца матрицы отдельно в порядке возрастания или убывания. Значниее ключевого слова dims сообщает со строками или столбцами идет работа.
Создайте матрицу A и отсортируйте каждый столбец из A в порядке возрастания.
A = rand(4,4)
B = sort(A, dims=1)
Еcли указать значение ключевого слова rev = true
, то сортировка будет не в порядке возрастания, а в порядке убывания.
C = sort(A, dims=2, rev=true)
Вывод¶
В данном материале мы рассмотрели некоторые функции для преобразования матриц: изменение формы, траспонирование, смещение и поворот, а также сортировку. Больше информации по операциям над матрицами вы можете найти в разделе Линейная алгебра.