求和、转置和对角线

优质
小牛编辑
133浏览
2023-12-01

可能聪明的你已经发现了魔方矩阵各行或列数字相加后的奇妙属性,无论是各行相加,还是各列相加,还是两条对角线的数字相加,都得到同一个结果。下面让我们用MATLAB来证实这一结论。首先试着输入

    sum(A)
    

MATLAB显示

    ans =
        34    34    34    34
    

如果你没有指定变量,MATLAB就会用变量ans(answer的缩写),来储存计算的结果。这里显示的是一个行向量,它的每一个元素是矩阵A相应列的元素的和。很明显,每一列的数字加起来的结果都是同一个数字,34。

如果每一行加起来又会怎样呢?由于MATLAB自带了计算矩阵列元素和的函数,所以最简单的计算行元素和的方法就是求原矩阵的转置的列元素和。一个矩阵的转置可以用在矩阵名后面加一个'''来表示。例如输入

    A'
    

结果显示

    ans =
        16     5     9     4
         3    10     6    15
         2    11     7    14
        13     8    12     1
    

并且

    sum(A')'
    

产生一个包含由行元素的和组成的列向量

    ans =
        34
        34
        34
        34
    

对角线元素由diag函数很容易就被列出来

    diag(A)
    

结果显示:

    ans =
        16
        10
         7
         1
    

如果输入

    sum(diag(A))
    

结果显示

    ans =
        34
    

另外的对角线,即所谓的反对角线,在数学上就不是那么重要的了。所以MATLAB就没有 相应的函数。但在图形函数中,函数fliplr产生一个左右调转的矩阵

    sum(diag(fliplr(A)))
    ans =
        34
    

你已经证明了在杜勒的木板图中的矩阵的确是一个魔术方阵,在证明过程中举了一些用MATLAB作矩阵运算的例子。以下的章节将用此矩阵继续介绍MATLAB的其他功能。