matlab使用教程(1)—矩阵和数组

简介: MATLAB® 主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值。每个数组必须具有相同的行数。同样,如果各数组具有相同的列数,则可以使用分号垂直串联。MATLAB® 中的每个变量都是一个可包含许多数字的数组。如果要访问数组的选定元素,请使用索引。实际上,第一个数组是通过将其各个元素串联起来而构成的。乘法、除法和幂的矩阵运算符分别具有执行元素级运算的对应数组运算符。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

相关文章
|
6月前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
179 0
matlab--------矩阵重构,重新排列的相关函数说明
|
6月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
73 0
|
7天前
|
Python Windows
SciPy 教程 之 SciPy Matlab 数组 1
本教程介绍了如何使用 SciPy 的 `scipy.io` 模块处理 Matlab 数组。通过 `savemat()` 方法可以将数据导出为 Matlab 格式的文件,而 `loadmat()` 方法则用于从 Matlab 文件中导入数据。示例展示了如何导出和导入一维数组,并解决了导入时数组维度增加的问题。
7 1
|
1月前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
51 1
|
3月前
|
Go C++ Windows
Matlab 冰壶仿真游戏安装及教程
在Matlab上安装并运行冰壶仿真游戏的详细教程,包括编译环境准备、通过APP安装或直接运行源代码的方式,以及游戏的基本操作步骤。
35 0
|
5月前
|
算法 数据可视化 数据挖掘
大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)
MATLAB(Matrix Laboratory)是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能,为众多科学领域提供了全面的解决方案。
|
5月前
|
机器学习/深度学习 存储 移动开发
MATLAB数据类型和运算符+矩阵创建
MATLAB数据类型和运算符+矩阵创建
63 1
|
5月前
|
算法 数据可视化 数据挖掘
大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)
MATLAB(Matrix Laboratory)是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能,为众多科学领域提供了全面的解决方案。
|
5月前
|
数据可视化 数据挖掘 计算机视觉
Matlab教程:入门指南
Matlab教程:入门指南
|
6月前
MATLAB2022安装下载教程
MATLAB2022安装下载教程
794 2