从0开始学matlab(1)—矩阵和数组

简介: 以下内容均来源于matlab官方文档和自己学习过程中积累的经验

         MATLAB 是“matrix laboratory”的缩写形式。MATLAB® 主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值。

       所有 MATLAB 变量都是多维数组,与数据类型无关。矩阵是指通常用来进行线性代数运算的二维数组。

1数组创建

       要创建每行包含四个元素的数组,请使用逗号 (,) 或空格分隔各元素。

a = [1 2 3 4]

image.gif

a = 1×4

1 2 3 4

       这种数组为行向量。

       要创建包含多行的矩阵,请使用分号分隔各行。

a = [1 3 5; 2 4 6; 7 8 10]

image.gif

a = 3×3

1 3 5

2 4 6

7 8 10

       创建矩阵的另一种方法是使用 oneszerosrand 等函数。例如,创建一个由零组成的 5×1 列向量。

z = zeros(5,1)

image.gif

z = 5×1

0

0

0

0

0

2矩阵和数组运算

       MATLAB 允许您使用单一的算术运算符或函数来处理矩阵中的所有值。

a = [1 3 5; 2 4 6; 7 8 10];
a + 10

image.gif

ans = 3×3

11 13 15

12 14 16

17 18 20

a = [1 3 5; 2 4 6; 7 8 10];
sin(a)

image.gif

ans = 3×3

0.8415 0.1411 -0.9589

0.9093 -0.7568 -0.2794

0.6570 0.9894 -0.5440

       要转置矩阵,请使用单引号 ('):

a = [1 3 5; 2 4 6; 7 8 10];
a'

image.gif

ans = 3×3

1 2 7

3 4 8

5 6 10

       您可以使用 * 运算符执行标准矩阵乘法,这将计算行与列之间的内积。例如,确认矩阵乘以其逆矩阵可返回单位矩阵:

a = [1 3 5; 2 4 6; 7 8 10];
p = a*inv(a)

image.gif

p = 3×3

1.0000 0.0000 -0.0000

0 1.0000 -0.0000

0 0.0000 1.0000

       请注意,p 不是整数值矩阵。MATLAB 将数字存储为浮点值,算术运算可以区分实际值与其浮点表示之间的细微差别。使用 format 命令可以显示更多小数位数:

format long
p = a*inv(a)

image.gif

p = 3×3

0.999999999999996 0.000000000000007 -0.000000000000002

0 1.000000000000000 -0.000000000000003

0 0.000000000000014 0.999999999999995

       使用以下命令将显示内容重置为更短格式

format short

image.gif

       format 仅影响数字显示,而不影响 MATLAB 对数字的计算或保存方式。要执行元素级乘法(而非矩阵乘法),请使用 .* 运算符:

p = a.*a

image.gif

p = 3×3

1 9 25

4 16 36

49 64 100

       乘法、除法和幂的矩阵运算符分别具有执行元素级运算的对应数组运算符。例如,计算 a 的各个元素的三次方:

a.^3

image.gif

ans = 3×3

1 27 125

8 64 216

343 512 1000

3串联

       串联是连接数组以便形成更大数组的过程。实际上,第一个数组是通过将其各个元素串联起来而构成的。成对的方括号 [] 即为串联运算符。

A = [a,a]

image.gif

A = 3×6

1 3 5 1 3 5

2 4 6 2 4 6

7 8 10 7 8 10

       使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。同样,如果各数组具有相同的列数,则可以使用分号垂直串联。

A = [a; a]

image.gif

A = 6×3

1 3 5

2 4 6

7 8 10

1 3 5

2 4 6

7 8 10

4复数

       复数包含实部和虚部,虚数单位是 -1 的平方根。

sqrt(-1)

image.gif

ans = 0.0000 + 1.0000i

       要表示复数的虚部,请使用 ij

c = [3+4i, 4+3j; -i, 10j]

image.gif

c = 2×2 complex

3.0000 + 4.0000i 4.0000 + 3.0000i

0.0000 - 1.0000i 0.0000 +10.0000i

5数组索引

       MATLAB® 中的每个变量都是一个可包含许多数字的数组。如果要访问数组的选定元素,请使用索引。 例如,假设有 4×4 矩阵 A

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

image.gif

A = 4×4

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

       引用数组中的特定元素有两种方法。最常见的方法是指定行和列下标,例如

A(4,2)

image.gif

ans = 14

       另一种方法不太常用,但有时非常有用,即使用单一下标按顺序向下遍历每一列:

A(8)

image.gif

ans = 14

       使用单一下标引用数组中特定元素的方法称为线性索引。如果尝试在赋值语句右侧引用数组外部元素,MATLAB 会引发错误。

test = A(4,5)

image.gif

Index in position 2 exceeds array bounds (must not exceed 4).

       不过,您可以在赋值语句左侧指定当前维外部的元素。数组大小会增大以便容纳新元素。

A(4,5) = 17

image.gif

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 前三行及第二列中的元素:

A(1:3,2)

image.gif

ans = 3×1

2

6

10

       单独的冒号(没有起始值或结束值)指定该维中的所有元素。例如,选择 A 第三行中的所有列:

A(3,:)

image.gif

ans = 1×5

9 10 11 12 0

       此外,冒号运算符还允许您使用较通用的格式 start:step:end 创建等间距向量值。

B = 0:10:100

image.gif

B = 1×11

0 10 20 30 40 50 60 70 80 90 100

       如果省略中间的步骤(如 start:end ),MATLAB 会使用默认步长值 1

相关文章
|
5月前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
160 0
matlab--------矩阵重构,重新排列的相关函数说明
|
5月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
68 0
|
13天前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
26 1
|
4月前
|
机器学习/深度学习 存储 移动开发
MATLAB数据类型和运算符+矩阵创建
MATLAB数据类型和运算符+矩阵创建
50 1
|
5月前
|
Serverless 索引
matlab--------矩阵的运算
matlab--------矩阵的运算
50 1
matlab--------矩阵的运算
|
5月前
|
资源调度
如何在 Matlab 中生成正态分布的整数矩阵
如何在 Matlab 中生成正态分布的整数矩阵
|
5月前
【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)
【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)
|
5月前
|
存储 索引
第二章:MATLAB基础教程:数组和矩阵运算
第二章:MATLAB基础教程:数组和矩阵运算
59 0
|
5月前
|
存储 人工智能 资源调度
Matlab矩阵和数组的操作
Matlab矩阵和数组的操作
140 0
|
5月前
|
算法
MATLAB求解矩阵特征值的六种方法
关于这个特征值的求解一共六种方法 幂法 反幂法 QR方法 对称QR方法 jacobi方法 二分法
695 0

热门文章

最新文章