矩阵和数组
MATLAB是“矩阵实验室”的缩写。虽然其他编程语言主要一次处理一个数字,但MATLAB®主要设计用于整个矩阵和数组。
所有 MATLAB 变量都是多维数组,无论数据类型如何。矩阵是通常用于线性代数的二维数组。
一、阵列创建
若要在一行中创建具有四个元素的数组,请用逗号或空格分隔这些元素。
a = [1 2 3 4]
a = 1×4
1 2 3 4
这种类型的数组是行向量。
若要创建具有多行的矩阵,请用分号分隔这些行。
a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3
1 3 5
2 4 6
7 8 10
如下
且发现如果不输入不会自动产生0,会发生错误
特别的,创建矩阵的另一种方法是使用函数,例如 、 、 或 。例如,创建一个 5 x 1 的零列向量。
z = zeros(5,1)
z = 5×1
0
0
0
0
0
可知,此函数的作用为创建任意的小的0矩阵
二、矩阵和数组操作
MATLAB 允许您使用单个算术运算符或函数处理矩阵中的所有值。
a + 10
ans = 3×3
11 13 15
12 14 16
17 18 20
sin(a)
ans = 3×3
0.8415 0.1411 -0.9589
0.9093 -0.7568 -0.2794
0.6570 0.9894 -0.5440
要转置矩阵,请使用单引号 :'
a'
ans = 3×3
1 2 7
3 4 8
5 6 10
您可以使用运算符执行标准矩阵乘法,该乘法计算行和列之间的内部乘积。例如,确认矩阵乘以其逆矩阵返回单位矩阵:*
矩阵整体的乘法
p = a*inv(a)//矩阵乘逆矩阵得到的单位矩阵
p = 3×3
1.0000 0.0000 -0.0000
0 1.0000 -0.0000
0 0.0000 1.0000
请注意,这不是整数值的矩阵。MATLAB 将数字存储为浮点值,并且算术运算对实际值与其浮点表示之间的微小差异很敏感。您可以使用以下命令显示更多十进制数字:format
format long
p = a*inv(a)
p = 3×3
0.999999999999996 0.000000000000007 -0.000000000000002
0 1.000000000000000 -0.000000000000003
0 0.000000000000014 0.999999999999995
使用
format short
format仅影响数字的显示,而不影响 MATLAB 计算或保存数字的方式。
如下
要执行按元素乘法而不是矩阵乘法,请使用运算符:.*
p = a.*a
p = 3×3
1 9 25
4 16 36
49 64 100
用于乘法、除法和幂次幂的矩阵运算符都有一个相应的数组运算符,该运算符按元素操作。例如,将 的每个元素提高到第三次幂:a
a.^3
ans = 3×3
1 27 125
8 64 216
343 512 1000
如下
四、串联(合并矩阵)
串联是连接数组以生成较大数组的过程。实际上,您是通过连接其各个元素来创建第一个数组的。方括号对是串联运算符。[]
A = [a,a]
A = 3×6
1 3 5 1 3 5
2 4 6 2 4 6
7 8 10 7 8 10
使用逗号将数组彼此相邻连接起来称为水平串联。每个数组必须具有相同的行数。同样,当数组具有相同数量的列时,可以使用分号垂直连接。
A = [a; a]
A = 6×3
1 3 5
2 4 6
7 8 10
1 3 5
2 4 6
7 8 10
五、复数
复数有实部和虚部,其中虚部单位是 的平方根。-1
sqrt(-1)
ans = 0.0000 + 1.0000i
要表示复数的虚部,请使用i或j
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex
3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i
事实证明逗号和分号都能分割行
六、数组索引
试试这个例子复制命令复制代码
MATLAB® 中的每个变量都是一个可以容纳许多数字的数组。如果要访问数组的选定元素,请使用索引。
例如,考虑 4 x 4 矩阵:A
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
有两种方法可以引用数组中的特定元素。最常见的方法是指定行和列下标,例如
A(4,2)
ans = 14
注:不太常见但有时有用的是使用单个下标,该下标按顺序遍历每列:
A(8)//第四行为13 则第八行为14
ans = 14
使用单个下标来引用数组中的特定元素称为线性索引。
注意:如果尝试引用赋值语句右侧数组外部的元素,MATLAB 会引发错误。
test = A(4,5)
Index in position 2 exceeds array bounds (must not exceed 4).
但是,在赋值语句的左侧,可以指定当前尺寸之外的元素。数组的大小会增加以容纳新来者。
A(4,5) = 17//此时矩阵已经创建,故不输入可以自动显示0
A = 4×5
1 2 3 4 0
5 6 7 8 0
9 10 11 12 0
13 14 15 16 17
要引用数组的多个元素,请使用冒号运算符,它允许您指定格式的范围。例如,列出前三行和第二列中的元素:start:end
A(1:3,2) //一到三行的所有第二列元素
ans = 3×1
2
6
10
冒号本身(不带开始值或结束值)指定该维度中的所有元素。例如,选择 以下行的第三行中的所有列:A
A(3,:)//仅仅第三行的所有列
ans = 1×5
9 10 11 12 0
冒号运算符还允许您使用更通用的形式创建等间距的值向量。start:step:end
B = 0:10:100
B = 1×11
0 10 20 30 40 50 60 70 80 90 100
如果省略中间步骤,如中所示,MATLAB 将使用缺省步骤值 。start:end1
七、工作区变量
工作区包含您在 MATLAB 中创建的变量,或从数据文件或其他程序导入 MATLAB 的变量。例如,这些语句在工作区中创建变量。®AB
A = magic(4);
B = rand(3,5,2);
您可以使用 查看工作区的内容。whos
whos
Name Size Bytes Class Attributes
A 4x4 128 double
B 3x5x2 240 double
这些变量还会显示在桌面上的“工作区”窗格中。
工作区变量在退出 MATLAB 后不会保留。 保存您的数据,以便以后与命令一起使用,save
save myfile.mat
“保存”会将当前工作文件夹中的工作空间保留在扩展名为 MAT 文件(称为 MAT 文件)的压缩文件中。.mat
若要从工作区中清除所有变量,请使用该命令。Clear
删除单个变量只需要clear b
使用 将数据从 MAT 文件恢复到工作区。load
load myfile.mat
如图,先清除工作区所有变量之后仍然可以从myfile文件中恢复文章来源:https://www.toymoban.com/news/detail-803547.html
文章来源地址https://www.toymoban.com/news/detail-803547.html
到了这里,关于Matlab基础语法学习(2)矩阵和数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!