阵列中的排列及其形状的变化
许多Engee函数使用数组元素并为它们提供不同的形状或序列。 这对于数据预处理、后续计算或数据分析非常有用。
改变形状
功能 reshape 修改数组的大小和形状。 例如,变换大小为3的矩阵 4在尺寸为2的矩阵中 6.
In [ ]:
A = [1 4 7 10; 2 5 8 11; 3 6 9 12]
Out[0]:
In [ ]:
B = reshape(A,2,6)
Out[0]:
使用来自a的元素,您可以创建一个多维数组,该数组将包含3个大小为2的矩阵 2.
In [ ]:
C = reshape(A,2,2,3)
Out[0]:
换位和翻转
线性代数中的一个常见任务是处理矩阵的转置,它将行变成列,将列变成行。 为此,请使用函数 transpose 或运营商 ' .
In [ ]:
A = rand(3, 3)
Out[0]:
In [ ]:
A'
Out[0]:
In [ ]:
B = [1+im 1-im; -im im]
Out[0]:
In [ ]:
transpose(B)
Out[0]:
功能 reverse 根据关键字值,上下移动行和从左到右移动列。 dims.
dims=1#使用字符串
dims=2#使用列
In [ ]:
A = [1 2; 3 4]
Out[0]:
In [ ]:
B = reverse(A, dims=1)
Out[0]:
In [ ]:
С = reverse(A, dims=2)
Out[0]:
位移和旋转
您可以使用该函数将数组元素移位一定数量的位置 circshift. 例如,创建大小为3的矩阵 4并将其列向右移动2。 第二个参数[0 2]告诉 circshift 你需要将行移动0个地方,将列移动2个地方。
In [ ]:
A = [1 2 3 4; 5 6 7 8; 9 10 11 12]
Out[0]:
In [ ]:
B = circshift(A,[0 2])
Out[0]:
要将行从A向上移动1并将列保持在适当位置,请将第二个参数指定为[-1 0]。
In [ ]:
C = circshift(A,[-1 0])
Out[0]:
In [ ]:
A = [1 2; 3 4]
Out[0]:
分类方法
对数组中的数据进行排序也是一个有价值的工具。 例如,函数 sort 按升序或降序分别对矩阵的每一行或每一列的元素进行排序。 Dims关键字的含义告诉您正在进行行或列的工作。
创建一个矩阵A并按升序从A中对每列进行排序。
In [ ]:
A = rand(4,4)
Out[0]:
In [ ]:
B = sort(A, dims=1)
Out[0]:
如果指定关键字值 rev = true,那么排序不会是升序,而是降序。
In [ ]:
C = sort(A, dims=2, rev=true)
Out[0]:
结论
在本文中,我们回顾了转换矩阵的一些函数:形状移位,转置,移位和旋转以及排序。 您可以在[线性代数]一节中找到有关矩阵运算的更多信息(https://engee.com/helpcenter/stable/ru/julia/stdlib/LinearAlgebra.html )。