数学建模 Matlab 上机课 (1) 数组、向量与矩阵

本篇介绍 Matlab 中 行向量(数组)、列向量、矩阵 的创建、运算和取元素等基本操作。全文较长,对于有基础的同学可以根据目录选择性食用。

1. 创建数组

1.1 自定义数组

Matlab中,同行间的数字用 逗号空格 隔开,比如创建一个 数组(行向量)

x = [5,2,4,1,3]
x = [5 2 4 1 3]

在这里插入图片描述

不同行之间则用 分号 隔开,比如创建一个 列向量

x = [5;2;4;1;3]

在这里插入图片描述

1.2 创建等差数列的数组

① 语句 [a:b:c] 用于表示 从a到c,步长为b 的等差数列,例如:

x = [1:2:10]    % 从1到10,步长为2

在这里插入图片描述

备注:
[1] 步长:两项之间的距离
[2] Matlab中,%后的内容为注释


在很多情况下,我们要创建 连续数字的数组 ,即步长为1。此时可省去中间的步长项,即 [a:c],默认步长为1,例如:

x = [1:5]

在这里插入图片描述

在a~c之间取n个数组成等差数列,可以使用 linspace(a,c,n) 语句:

x = linspace(1,10,4)

在这里插入图片描述

2. 数组的基本操作

2.1 取数组中的元素

① 取数组x中的第i个元素,用 x(i) 表示。例如:

x = [5 2 4 1 3];
a = x(2)

在这里插入图片描述

备注:
Matlab中,代码后加上分号表示不显示该句代码的运行结果


② 取数组x的第a~c个元素,用 x(a:c) 表示。例如:

x = [5 2 4 1 3];
a = x(2:4)

在这里插入图片描述

最后一个元素的关键字是 end。所以从第a个元素取到最后一个元素,用 x(a:end) 表示。例如:

x = [5 2 4 1 3];
a = x(2:end)

在这里插入图片描述
也可引入步长的方法等间隔取数,用 x(a:b:c) 表示。例如:

x = [5 2 4 1 3];
a = x(2:2:5)

在这里插入图片描述

③ 取数组x的第a、b、c、d (…)个元素,用 x([a b c d]) 表示。例如:

x = [5 2 4 1 3];
a = x([2 3 5])

在这里插入图片描述

④ 取数组x中小于n的元素,用 x(find(x<n)) 表示。例如:

x = [5 2 4 1 3];
a = x(find(x<4))

在这里插入图片描述

2.2 给数组中的某一位赋新值

将数组x的第i个元素赋值为A,用 x(i) = A 表示。例如:

x = [5 2 4 1 3];
x(3) = 10

在这里插入图片描述

2.3 给数组中的元素排序

① 将数组x升序排序,用 sort(x,'ascend') 表示。例如:

x = [5 2 4 1 3];
y = sort(x,'ascend')

在这里插入图片描述
② 将数组x降序排序,用 sort(x,'descend') 表示。例如:

x = [5 2 4 1 3];
y = sort(x,'descend')

在这里插入图片描述

备注:
不加第二个参数,即 sort(x) 默认是升序排序。

3. 运算符

Matlab中的运算符有以下这些(加减乘除幂):
(除法分为左除和右除;还有点乘、点除、点幂。)

a+c   a-c
a*c   a.*c   c*a   c.*a
a/c   a./c   c/a   c./a    
a\c   a.\c   c\a   c.\a
a^c   a.^c   c^a   c.^a
3.1 向量与标量的运算

例:a = [1,2,3,4] c = 2

不能进行的运算:

c/a   a^c   c^a
3.2 向量与向量的运算

例:a = [1,2,3,4] c = [2,3,4,5]

不能进行的运算:

a*c   c*a    a^c   c^a

4. 矩阵

4.1 创建特殊矩阵

① 创建空矩阵

x = []

在这里插入图片描述

② 创建m行n列的零矩阵,用 x = zeros(m,n) 表示。例如:

x = zeros(3,3)

在这里插入图片描述

③ 创建m行n列的元素全为1的矩阵,用 x = ones(m,n) 表示。例如:

x = ones(4,5)

在这里插入图片描述

④ 创建m行n列的单位矩阵,用 x = eye(m,n) 表示。例如:

x = eye(3,3)

在这里插入图片描述

备注:
单位矩阵通常用字母 I 表示,eye 谐音 I。

4.2 创建矩阵

同行的数字之间用 逗号或空格 隔开,换行用 分号 隔开。

例如:创建矩阵
A = [ 1 2 3 4 5 6 7 8 9 10 11 12 ] A = \begin{bmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 &10 &11 &12 \end{bmatrix} A=159261037114812

A = [1,2,3,4;5,6,7,8;9,10,11,12]
A = [1 2 3 4;5 6 7 8;9 10 11 12]

也可以使用 冒号 表示连续的数列

A = [1:4;5:8;9:12]

在这里插入图片描述

5. 矩阵的基本操作

5.1 取矩阵中的一部分

① 取矩阵A的第i行,用 A(i,:) 表示。例如:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
B = A(2,:)

在这里插入图片描述

备注:
这里的 : 其实是前文中 a:c 连续取第a位到第c位的格式。a和c均不给出,则表示取最开头到结尾。因此这里表示取第2行整行。

② 取矩阵A的第j列,用 A(:,j) 表示。例如:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
B = A(:,2)

在这里插入图片描述

③ 取矩阵A第i1~i2行、第j1~j2列构成的矩阵,用 A(i1:i2,j1:j2) 表示。例如:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
B = A(1:3,1:2)

在这里插入图片描述

④ 逆序获取矩阵A第i1~i2行构成的矩阵,用 A(i2:-1:i1,:) 表示。例如:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
B = A(3:-1:1,:)

在这里插入图片描述

5.2 删除矩阵中的一部分

① 删除矩阵A的第i1~i2行,用 A(i1:i2,:) = [] 表示。例如:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
A(1:2,:) = []

在这里插入图片描述

如果不想改变原矩阵A,可以先将矩阵A赋值到其他变量再删除:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
B = A;
B(1:2,:) = []

在这里插入图片描述

② 删除矩阵A的第j1~j2列,用 A(:,j1:j2) = [] 表示。例如:

A = [1,2,3,4;5,6,7,8;9,10,11,12];
A(:,1:2) = []

在这里插入图片描述

6. 矩阵的运算

6.1 矩阵运算

矩阵间运算符同前文,不再赘述。常用的有加法和乘法:

A+B
A*B
6.2 方阵的行列式、逆矩阵、特征值和特征向量

例如:对矩阵
A = [ 1 2 − 1 − 3 ] A = \begin{bmatrix} 1 & 2 \\ -1 & -3 \end{bmatrix} A=[1123]
① 求方阵A的行列式,用 det(A) 表示:

A = [1,2;-1,-3];
d = det(A)

在这里插入图片描述

② 求方阵A的逆矩阵,用 inv(A) 表示:

A = [1,2;-1,-3];
B = inv(A)

在这里插入图片描述

③ 求方阵A的特征值和特征向量,用 eig(A) 表示:

这个函数的使用需要注意:

将运算结果赋值给一个变量,得到的是特征值向量:

A = [1,2;-1,-3];
v = eig(A)

在这里插入图片描述

赋值给两个变量,得到的是 特征向量矩阵 和 对角矩阵

A = [1,2;-1,-3];
[V,D] = eig(A)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两只程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值