矩阵和数组(3)6.1矩阵 6.1.11操作矩阵 6.1.12矩阵的可视化 6.1.13多维数组
6.1矩阵 6.1.11操作矩阵下面是一些用于处理矩阵的函数: diag 函数可以用于提取或创建矩阵的对角线。具体来说,如果输入一个矩阵,diag 函数会返回该矩阵的主对角线元素组成的向量。如果输入一个向量,diag 函数会创建一个以该向量为主对角线元素的矩阵。例如,假设有一个3x3的矩阵A:
A = [1 2 3; 4 5 6; 7 8 9];
要提取A的主对角线元素,可以使用以下代码: d = diag(A);
运行结果为: d = 1 5 9
要创建一个以向量v 为主对角线元素的矩阵,可以使用以下代码: B = diag(v);
例如,要创建一个3x3的矩阵,其主对角线元素为1、2、3,可以使用以下代码: v = [1 2 3]; B = diag(v);
运行结果为: B = [1 0 0; 0 2 0; 0 0 3]
fliplr 函数可以用于将矩阵从左到右翻转。具体来说,fliplr 函数会将矩阵的每一行从左到右翻转。例如,假设有一个3x3的矩阵A:
A = [1 2 3; 4 5 6; 7 8 9];
要将A从左到右翻转,可以使用以下代码: B = fliplr(A);
运行结果为: B = [3 2 1; 6 5 4; 9 8 7]
flipud 函数可以用于将矩阵从上到下翻转。具体来说,flipud 函数会将矩阵的每一列从上到下翻转。例如,假设有一个3x3的矩阵A:
A = [1 2 3; 4 5 6; 7 8 9];
要将A从上到下翻转,可以使用以下代码: B = flipud(A);
运行结果为: B = [7 8 9; 4 5 6; 1 2 3]
rot90 函数可以用于将矩阵旋转。具体来说,rot90 函数可以将矩阵逆时针旋转90度、180度或270度。例如,假设有一个3x3的矩阵A:
A = [1 2 3; 4 5 6; 7 8 9];
要将A逆时针旋转90度,可以使用以下代码: B = rot90(A);
运行结果为: B = [3 6 9; 2 5 8; 1 4 7]
要将A逆时针旋转180度,可以使用以下代码: C = rot90(A, 2);
运行结果为: C = [9 8 7; 6 5 4; 3 2 1]
要将A逆时针旋转270度,可以使用以下代码: D = rot90(A, 3);
运行结果为: D = [7 4 1; 8 5 2; 9 6 3]
tril 函数可以用于提取矩阵的下三角形部分。具体来说,tril 函数会将矩阵的上三角形部分置为0,返回矩阵的下三角形部分。例如,假设有一个3x3的矩阵A:
A = [1 2 3; 4 5 6; 7 8 9];
要提取A的下三角形部分,可以使用以下代码: B = tril(A);
运行结果为: B = [1 0 0; 4 5 0; 7 8 9]
注意,tril 函数默认提取矩阵的主对角线及以下部分。如果要提取矩阵的次对角线及以下部分,可以使用tril(A, -1) 。 A =
1 2 3 4 5 6 7 8 9
>> tril(A, -1)
ans =
0 0 0 4 0 0 7 8 0
6.1.12矩阵的可视化矩阵可以在MATLAB中可视化。这一主题在第9章作了简要讨论,并附有插图。 6.1.13多维数组MATLAB数组可以有两个以上的维度。例如,假设你创建了一个矩阵a = [1:2; 3:4] ,可以向其中添加第三个维度a(:,:,2) = [5:6; 7:8] >> a = [1:2; 3:4]
a =
1 2 3 4
>> a(:,:,2) = [5:6; 7:8]
a(:,:,1) =
1 2 3 4
a(:,:,2) =
5 6 7 8
首先创建了一个2x2的矩阵a,其中第一行为1和2,第二行为3和4。然后,它在第三维上添加了一个新的2x2的矩阵,其中第一行为5和6,第二行为7和8。最后,通过a(:,:,1) 和a(:,:,2) 可以分别访问这两个矩阵。 我们可以把三维数组a想象成一系列的“页面”,每页上都有一个矩阵。a的第三个维度是页数。这类似于具有多个工作表的电子表格:每个工作表包含一个表格(矩阵)。
|