MATLAB 基础笔记(一):数组的生成

笔记一是简单介绍MATLAB中关于向量和矩阵的常用生成方式。

1.行向量和列向量的建立

在MATLAB中一般使用方括号,逗号,空格及分号来创建数组。
数组中的同一行的元素之间用逗号或空格分开,不同行之间用分号分开。

A=[1 2 3 4 5]
B=[1,2,3,4,5]
C=[1;2;3;4;5]

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.一维数组元素的访问和赋值

访问方式有三种
A(i)是值数组A中的第i个元素;
A(i:j)是数组A中第i个到第j个元素,中间默认间隔为1;
A(i:s:j)是数组A中从第i个元素,间隔为s,直到最后一个元素的序号和j的差的绝对值小于或等于s的绝对值为止;
A([i j])是数组A中第i个和第j个元素。

A=[1,2,3,4,5]
B=A(3)         % 数组的第3个元素
C=A(2:4)       % 数组的第2,3,4个元素
D=A(3:end)     % 数组的第3个到最后一个元素
E=A(3:-1:1)     % 数组的第3,2,1个元素
F=A(end:-1:1)   % 数组元素反序输出
G=A([2 4])      % 数组的第2个和第4个元素
H=A(1:2:4)      % 从数组的第一个元素开始,间隔为2,到最后第3个元素为止(最后的元素序号为3和j=4相差1小于间隔2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.通过冒号建立一维数组

X=n1:step:n2是建立一维数组,第一个元素为n1,间隔为step,直到最后一个元素和n2的差的绝对值小于或等于step的绝对值为止;不指定step时,默认step为1.

A=2:6         % 创建第一个元素为2,间隔为1,最后元素为6的数组
B=2.5:2:10.9    % 创建第一个元素为2.5,间隔为2,最后元素为10.5的数组(最后元素10.5和10.9之差小于间隔2)
C=8:-2:1       % 创建第一个元素为8,间隔为-2,最后一个元素为2的数组(最后的元素2和1之差为1小于间隔的绝对值2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.使用linspace函数建立一维数组

X=linspace(n1,n2)是创建第一个元素为n1,最后一个元素为n2,形成总共为100个元素的等差数列,间隔为(n2-n1)/(100-1);
X=linspace(n1,n2,N)是创建第一个第一个元素为n1,最后一个元素为n2,形成总共为N个元素的等差数列,间隔为(n2-n1)/(N-1);
如果N<2,则函数返回值为n2。

A=linspace(1,100)  % 创建第一个元素为1,最后一个元素为100的100个元素的等差数列,间隔为(100-1)/(100-1)=1
B=linspace(1,99,50) % 创建第一个元素为1,最后一个元素为99的50个元素的等差数列,间隔为(99-1)/(50-1)=2
C=linspace(2,5,2)  % 创建第一个元素为2,最后一个元素为5的2个元素的数组
D=linspace(2,5,1)  % 返回元素5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.通过logspace建立一维数组

此处因为有公式(暂时用图片替代)
在这里插入图片描述

A=logspace(1,2)    % 创建第一个元素为10,最后一个元素为100,公比为10的1/49次幂,50个元素等比数列
B=logspace(1,2,10)  % 创建第一个元素为10,最后一个元素为100,公比为10的1/9次幂,10个元素等比数列
C=logspace(1,2,2)   % 创建第一个元素为10,最后一个元素为100,2个元素的数组
D=logspace(1,2,1)   % 返回值为100

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.创建二维数组(矩阵)

用方括号将所有元素括起来,不同行的元素用分号分隔,同一行的元素用空格或者逗号分隔。

A=[1 2 3;4 5 6;7 8 9]     % 创建3*3的矩阵
B=[1 2;3 4;5 6]          % 创建3*2的矩阵
C=[1 2 3;4 5 6]          % 创建2*3的矩阵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
矩阵的连接
用方括号可以进行矩阵的连接,空格进行矩阵的横向连接,分号进行矩阵的纵向连接。

D=[A B]         % 横向连接要保证两个矩阵行数相同
E=[A;C]         % 纵向连接要保证两个矩阵列数相同

在这里插入图片描述
在这里插入图片描述

7.矩阵的四则运算

两个矩阵要进行加减运算,需要保证维数相同。
矩阵的加减运算是对应位置的元素进行加减。

A=[1 2;3 4]
B=[1 1;1 1]
C=A+B
D=A-B

在这里插入图片描述
在这里插入图片描述
矩阵的乘法规则是线性代数中的乘法规则:
假设A,B,C均为nn矩阵,C=AB,则C中的任一元素
在这里插入图片描述
矩阵的点乘是两个矩阵相同位置的元素对应相乘

E=A*B
F=A.*B

在这里插入图片描述
在这里插入图片描述
矩阵的除法分为左除和右除

G=A./B     % 左除,相同位置的A中元素除以B中元素
H=A.\B     % 右除,相同位置的B中元素除以A中元素

在这里插入图片描述
在这里插入图片描述

8.数组的点积

两个数组的点积是两个数组对应位置元素相乘然后再求和

A=[1 2 3 4 5]
B=[2 3 4 5 6]
C=dot(A,B)

在这里插入图片描述

9.数组的关系运算

6种关系运算符:小于<、小于等于<=、大于>、大于等于>=、等于==和不等于~=
(1) 当两个比较量是标量时,直接比较两数的大小。若关系成立,则关系表达式结果为1,否则是0。
(2) 当参与比较量是两个维数相同的数组时,比较是对两数组相同位置的元素按标量关系运算规则逐个进行,并给出比较结果。最终的关系运算结果是一个维数与原数组相同的数组,它的元素由0或1组成。
(3) 当参与比较的一个是标量,而另一个是数组时,则把标量与数组的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算结果是一个维数与原数组相同的数组,它的元素由0或1组成。

A=[4 6 5 9 8]
B=[3 6 4 8 7]
C=(A<=7)        % A中小于等于7的数,在C中对应位置上为1,其余为0
D=(A>7)         % A中大于7的数,在D中对应位置上为1,其余为0
E=(A>B)         % 相同位置的A中元素大于B中元素时,则E中对应位置为1,其余为0
F=(A==B)        % 相同位置的A中元素等于B中元素时,则F中对应位置为1,其余为0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

A(A>7)=10    % A中大于7的数的位置对应的数赋值为10
B(B==8)=100   % B中等于8的数的位置对应的数赋值为100

在这里插入图片描述
在这里插入图片描述

10. 数组的逻辑运算

数组的逻辑运算包括与&、或|和非~
(1) 在逻辑运算中,非零元素为逻辑真,用1表示;零元素为逻辑假,用0表示;
(2) 若参与逻辑运算的是两个标量a和b,那么a&b,a和b全为非零时,运算结果为1,否则为0;a|b,a和b中只要有一个非零,运算结果为1,否则为0,;~a,当a非零时,运算结果为0,当a为零时,运算结果为1。
(3) 当参与逻辑运算是两个维数相同的数组时,那么对两数组相同位置的元素按标量运算规则逐个进行,最终的运算结果是一个维数与原数组相同的数组,它的元素由0或1组成。
(4) 当参与逻辑运算的一个是标量,而另一个是数组时,则把标量与数组的每一个元素按标量逻辑运算规则逐个比较,最终的运算结果是一个维数与原数组相同的数组,它的元素由0或1组成。

A=[11 1 0 0 2]
B=[2 3 4 0 0]
C=A&B
D=A|B
E=~A
F=A&1
A(A&1)=10

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11. 数组信息的获取

size(A):返回矩阵A的行数和列数
length(A):返回一维数组A的长度

A=[1 2 3 4 5]
[m n]=size(A)
d=length(A)

在这里插入图片描述
在这里插入图片描述
数组元素的查找
在数组中,find函数返回关系表达式为真的元素的下标

A=[1 2 3 4 5]
find(A>2)              % 返回A中元素大于2的下标
find(A==3)             % 返回A中元素等于3的下标
A(find(A==5))=100      % A中元素等于5的下标对应的数赋值100

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
排序
sort函数用于升序排序

A=[2 6 4 5 1]
B=sort(A)              % A中元素升序排序赋值给B
[C I]=sort(A,'ascend')    % C为A中元素升序结果,I为排序后的元素在排序前的下标
D=sort(A,'descend')     % A中元素降序结果赋值给D

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜菜菜~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值