基于矩阵实验室命名的矩阵设计:矩阵

 2024-01-06 08:01:25  阅读 0

由于它以矩阵实验室的名字命名,意味着该软件在矩阵计算方面具有出色的性能。 一般来说,矩阵是指矩形阵列。 有两种特殊情况,一种是单个元素的标量,另一种是只有一行或一列的矩阵,即向量。 还有其他方法来存储数字和非数字数据,但对于初学者来说,最好将所有内容都视为矩阵,这样更容易使用。 设计理念是让所有操作尽可能自然。 其他编程语言在处理数据时一次只能处理一个值,但允许用户快速、轻松地操作矩阵。

1. 矩阵的创建和组合

最基本的数据结构是矩阵,一种二维的矩形数据,可以以易于使用的矩阵形式存储。 数据可以是数字、字符、逻辑状态(真或假),甚至是结构数组类型。 。 使用二维矩阵来存储单个值或线性序列。 同时支持二维以上数据结构。

1.1 创建一个简单的矩阵

它是一个基于矩阵的计算环境。 所有用户输入的数据都将以矩阵或多维数组的形式存储。 即使是数字标量,例如 100,也以矩阵形式存储。

[例 2-1] 单个标量的输入示例。

>> A = 100; % 输入值 A

>> whos % whos命令可以用来查看存储的变量信息

名称 大小 字节 类别

1x1 8

从这个例子可以看出,标量A的存储格式是1×1矩阵,占用8字节内存空间,数据类型是双精度浮点数。

创建矩阵最简单的方法是使用矩阵构造标识符,即方括号[]。 创建行向量只需在方括号内输入相应的元素,并使用空格或逗号作为分隔符来分隔相邻的元素。

>> 行 = [E1, E2, ..., En]

>> 行 = [E1 E2 ... En]

如果要输入矩阵中的下一行,只需使用分号作为行之间的分隔符:

>>A = [行1; 行2; ...; 罗恩]

例如,要创建包含5个元素的单行矩阵,可以在命令行中输入以下命令:

>> A = [12 62 93 -8 22];

[例2-2] 创建一个步长为2、区间为2~20的向量。

其中,可以通过“初始值:步长:最终值”的方法创建向量。 在本例中,您可以在命令窗口中输入:

>>a=2:2:20

按回车键,命令窗口显示如下:

一个=

2 4 6 8 10 12 14 16 18 20

需要指出的是,步长可以是正数、负数或小数。 如果用户在表达式中没有指定步长,则默认步长为1。例如:

>> b=1:10

乙 =

1 2 3 4 5 6 7 8 9 10

另外,如果用户指定的间隔不是步长的整数倍,则会使用初始值,依次加上步长,生成序列,如下c所示。

>> c=3:5:15

c =

3 8 13

[示例 2-3] 这是如何创建 3 行 5 列矩阵的示例。 需要指出的是,在矩阵的输入过程中,矩阵的每一行必须具有相同数量的元素。

>> A = [12 62 93 -8 22; 16 2 87 43 91; -4 17-72 95 6]

A=

12 62 93 -8 22

16 2 87 43 91

-4 17 -72 95 6

方括号标识符只能创建二维矩阵,包括0´0、1´1、1´n、m´n等类型。 如果你想创建多维矩阵,请继续关注公众号文章。 而如果您需要对矩阵中的某些元素进行读取和赋值,请继续关注。

在矩阵中输入带符号的值时,请注意符号后面必须跟有值,并且两者之间不能有空格。 您可以在下面的比较中看到差异。

[例 2-4] 矩阵中带符号数值输入的示例。

下面两个运算表达式的例子说明,符号和值之间是否有空格并不影响计算结果。

>>7-2+5

答案=

10

>>7-2+5

答案=

10

不过,下面两个例子说明,如果矩阵输入时符号和值之间有空格,结果就会不同。 读者在这方面一定要注意,避免计算结果出现错误。

>> [7 - 2 + 5]

答案=

10

>> [7 -2 +5]

答案=

7-2 5

1.2 创建特殊矩阵

有许多内置函数可以直接用来创建不同的特殊矩阵。 例如创建矩阵和矩阵。 表2-1列出了一些常用的特殊矩阵创建函数。 需要再次强调的是,函数名称区分大小写。 函数名一般都是小写。 如果转换其中一个字母的大小写,可能会调用另一个函数或出现调用错误。

表2-1 常用的特殊矩阵创建函数

函数名 函数 函数 函数名 函数 函数

Zeros 生成一个所有元素均为零的矩阵。

diag 生成对角矩阵 rand 随机生成均匀分布矩阵

one 生成一个所有元素等于 1 的矩阵 randn 随机生成一个正态分布矩阵

eye 生成单位矩阵,生成由指定整数元素随机分布组成的矩阵。

magic 生成魔方矩阵

[例2-5] 特殊矩阵创建函数示例。

>> Ones(4) % 创建一个所有元素都为1的矩阵

答案=

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> eye(5) % 创建单位矩阵

答案=

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> rand(2,3) % 创建一个 2´3 均匀分布随机数矩阵

答案=

0.8147 0.1270 0.6324

0.9058 0.9134 0.0975

>> (7) % 创建一个由1:7组成的随机数序列

答案=

5 1 2 7 3 4 6

需要指出的是,每次运行随机函数都会得到不同的结果,因为默认情况下随机数种子是不同的。 这也是随机数的意义所在。 要使用函数生成相同的矩阵来验证运算结果,可以按如下方式设置随机种子状态:

>>兰特('状态',0);

>> (7)

答案=

2 7 4 3 6 5 1

通过这样的设置,读者可以获得与本书中相同的结果。

1.3 合并矩阵

矩阵合并是指将两个或多个矩阵合并在一起形成一个新的矩阵。 前面提到的矩阵标识符方括号[]不仅可以用来创建一个新的矩阵,还可以用来将多个矩阵合并在一起。

表达式 C = [AB] 将矩阵 A 和 B 水平连接在一起,而表达式 C = [A; B] 将矩阵 A 和 B 垂直连接在一起。

[例2-6] 求矩阵A和B在垂直方向上合并得到的矩阵C。

>> 兰特('状态', 0); % 设置随机种子,方便读者验证

>> A = 个(2, 5) * 6; % 2´5 矩阵,所有元素均为 6

>> B = 兰特(3, 5); % 3´5随机数矩阵

>> C = [A; B]

C=

6.0000 6.0000 6.0000 6.0000 6.0000

6.0000 6.0000 6.0000 6.0000 6.0000

0.9501 0.4860 0.4565 0.4447 0.9218

0.2311 0.8913 0.0185 0.6154 0.7382

0.6068 0.7621 0.8214 0.7919 0.1763

需要指出的是,矩阵合并过程中,新生成的矩阵必须保持矩形形状,否则会报错。 即如果要水平合并矩阵,每个子矩阵的行数必须相同; 如果要垂直合并矩阵,则每个子矩阵的列数必须相同。

如图2-1所示,图中行数相同的矩阵可以水平合并,但行数不同的矩阵不能水平合并。

标签: 矩阵

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码