怎么用matlab建立一个魔方,Matlab学习笔记(2)矩阵与魔方

一、输入矩阵

开始学习Matlab最好就是先知道如何输入矩阵

你可以依照以下几种方法进行输入矩阵:

1、直接输入矩阵的显式列表

2、从外部数据文件导入矩阵

3、利用方法来生成矩阵

4、利用M文件中自己写的方法来生成矩阵

输入矩阵,你必须遵守以下几条规则:

1、用空格或者逗号把同一行的数据分开

2、用分号把每一行的最后数据标示出来

3、用[ ]把整个数据围起来

比如

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Matlab会立即显示你刚输入的矩阵如下:

A =

16     3     2    13

5    10    11     8

9     6     7    12

4    15    14     1

这其实就是一个魔方。

二、求和、转置矩阵、对角矩阵

你可能意识到了这个魔方的特征,那就是假如你对任意一行或一列、或者任意一个对角数据求和,其结果都是一样的。让我们用Matlab来表示这些。你所用到的第一个表达式就是

sum(A)

Matlab回应为:

ans=

34   34   34   34

当我们没有指定输出变量时,Matlab就会使用ans(answer的缩写)变量来表示运算的结果。您计算了每一列向量的和值均为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

主对角线的数据和值主要用sum和diag方法来实现

diag(A)

生成:

ans =

16

10

7

1

同时

sum(diag(A))

生成:

ans=34

另外一对角数据,也称为反对角线。由于在数学领域并不重要,所以Matlab没有提供相关的实现方法。但在图形设计中的一个方法 fliplr可以把一个矩阵从左边反转到右边。

所以:

sum(diag(fliplr(A)))

将生成:

ans=34

通过本章学习到:

一、矩阵的生成

二、矩阵的求和方法sum(A)

三、矩阵的转置:A'

四、察看矩阵的对角元素:diag(A)

五、察看矩阵的反对角元素fliplr(A)