矩阵和幻方矩阵

您所在的位置:网站首页 matlab魔方矩阵 矩阵和幻方矩阵

矩阵和幻方矩阵

2023-06-18 06:22| 来源: 网络整理| 查看: 265

矩阵和幻方矩阵关于矩阵

在 MATLAB® 环境中,矩阵是由数字组成的矩形数组。有时,1×1 矩阵(即标量)和只包含一行或一列的矩阵(即向量)会附加特殊含义。MATLAB 采用其他方法来存储数值数据和非数值数据,但刚开始时,通常最好将一切内容都视为矩阵。MATLAB 旨在尽可能简化运算。其他编程语言一次只能处理一个数字,而 MATLAB 允许您轻松快捷地处理整个矩阵。本手册中使用的有效示例矩阵摘自德国艺术家和业余数学家 Albrecht Dürer 在文艺复兴时期的雕刻 Melencolia I。

这幅图布满了数学符号,通过仔细观察,您会发现右上角有一个矩阵。此矩阵称为幻方矩阵,在 Dürer 所处的时代,此幻方矩阵被视为富有真正的神秘性质。它具有某些值得让人深究的迷人特征。

输入矩阵

开始学习 MATLAB 的最佳方法是了解如何处理矩阵。启动 MATLAB 并按照每个示例操作。

您可以采用多种不同方法在 MATLAB 中输入矩阵:

输入元素的明确列表。

从外部数据文件加载矩阵。

使用内置函数生成矩阵。

使用您自己的函数创建矩阵,并将其保存在文件中。

首先,以元素列表的形式输入丢勒的矩阵。您只需遵循一些基本约定:

使用空格或逗号分隔行的元素。

使用分号 ; 表示每行末尾。

使用方括号 [ ] 将整个元素列表括起来。

要输入丢勒矩阵,只需在命令行窗口中键入即可

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 工作区会自动记住此矩阵。您可以将其简称为 A。现在,您已经在工作区中输入 A,让我们看看它为什么如此有趣吧。它有什么神奇的地方呢?

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

您可能已经注意到,幻方矩阵的特殊属性与元素的不同求和方法相关。如果沿任何行或列求和,或者沿两条主对角线中的任意一条求和,您将始终得到相同数字。让我们使用 MATLAB 来验证这一点。尝试的第一个语句是

sum(A)

MATLAB 返回的结果为

ans = 34 34 34 34

如果未指定输出变量,MATLAB 将使用变量 ans(answer 的缩略形式)来存储计算结果。您已经计算包含 A 的列总和的行向量。每个列的总和都相同,即幻数和 34。

行总和如何处理?MATLAB 会优先处理矩阵的列,因此获取行总和的一种方法是转置矩阵,计算转置的列总和,然后转置结果。

MATLAB 具有两个转置运算符。撇号运算符(例如,A')执行复共轭转置。它会围绕主对角线翻转矩阵,并且还会更改矩阵的任何复数元素的虚部符号。点撇号运算符 (A.') 转置矩阵,但不会影响复数元素的符号。对于包含所有实数元素的矩阵,这两个运算符返回相同结果。

因此

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 函数中使用维度参数:

sum(A,2)

生成

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

您已经验证丢勒雕刻中的矩阵确实是一个幻方矩阵,同时在验证过程中,您已经尝试了几个 MATLAB 矩阵运算。下面各部分继续使用此矩阵来演示 MATLAB 的其他功能。

magic 函数

MATLAB 实际包含一个内置函数,该函数可创建几乎任意大小的幻方矩阵。此函数称为 magic 也就不足为奇了:

B = magic(4) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

此矩阵几乎与丢勒雕刻中的矩阵相同,并且具有所有相同的“神奇”性质;唯一区别在于交换了中间两列。

您可以交换 B 的中间两列,使其看起来像丢勒 A。针对 B 中的每一行,按照指定顺序(1、3、2、4)对列进行重新排列:

A = B(:,[1 3 2 4])A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1生成矩阵

MATLAB 软件提供了四个用于生成基本矩阵的函数。

zeros

全部为零

ones

全部为 1

rand

均匀分布的随机元素

randn

正态分布的随机元素

下面给出了一些示例:

Z = zeros(2,4) Z = 0 0 0 0 0 0 0 0 F = 5*ones(3,3) F = 5 5 5 5 5 5 5 5 5 N = fix(10*rand(1,10)) N = 9 2 6 4 8 7 4 0 8 4 R = randn(4,4) R = 0.6353 0.0860 -0.3210 -1.2316 -0.6014 -2.0046 1.2366 1.0556 0.5512 -0.4931 -0.6313 -0.1132 -1.0998 0.4620 -2.3252 0.3792


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3