![MATLAB 2022a从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/484/47500484/b_47500484.jpg)
2.2 向量
向量是一个有方向的量,它是高等数学、线性代数中的概念,在力学、电磁学等领域有着广泛应用。向量是由n个数a1,a2,…,an组成的有序数列,形式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_4.jpg?sign=1739319618-qU9DwftDaduNrfylzP6tVmD8N2TlDpG9-0-cf1cfb293d103a4eb0decef8a93c49cd)
2.2.1 创建向量
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_5.jpg?sign=1739319618-8ozdKbIE5L6pIY4UttMDBdsberkY410k-0-85cfa1441927f2c5f618ffef3a839896)
2.2.1
在MATLAB中,向量主要采用一维数组来表示。创建向量主要有直接输入法、冒号表达式法和函数法。
1.直接输入法
在命令提示符之后直接输入一个向量,其格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_6.jpg?sign=1739319618-BiqWvIk5cn1V5R0klcxU75qbjmZW7ivZ-0-3cf03d8f50660e440da8e22d7e577773)
【例2-1】采用直接输入法创建向量。
在命令行窗口中输入以下命令并显示输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_7.jpg?sign=1739319618-tDEVc5Ed7AHUxPfsWRnZuBGte7lFznkN-0-49b4941f6ee9134db7e58404a2d90572)
说明:在后面的算例中,直接创建的向量或矩阵语句后采用了“;”结尾,表示不在命令行窗口中输出结果,不输入“;”可直接显示结果。
2.冒号表达式法
利用冒号表达式也可以创建向量,其格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_8.jpg?sign=1739319618-S587Cm0KrpvdFHrY2gHVQtDS73sdBwkN-0-aa9748783bf213e7f21bc341ab542c1c)
其中,a1为向量的第一个元素;an为向量最后一个元素的限定值;step是变化步长,可以是正数、负数或者小数,省略时系统默认步长为1。
MATLAB支持构造任意步长的向量,步长甚至可以是负数。
【例2-2】利用冒号表达式法创建向量。
在命令行窗口中输入以下命令并显示输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_9.jpg?sign=1739319618-xQlyb7JTqeDBOWZylJzcQzQ1uSz9fibY-0-927f9e657ffe13dbc5da340d75427af0)
3.函数法
MATLAB提供了两个函数用于直接创建向量:一个是实现线性等分的函数linspace;另一个是实现对数等分的函数logspace。
(1)函数linspace的通用格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_10.jpg?sign=1739319618-u3kP47ZLYj2FAQiwUOHZTDPc4QBE2mmx-0-2a591e9512a25b78ade9186a7a3eaedb)
其中,a1是向量的首元素,an是向量的尾元素,n把a1至an的区间分成向量首尾元素之外的其他n-2个元素。若省略n,则默认创建含有100个元素的线性等分向量。
(2)函数logspace的通用格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_11.jpg?sign=1739319618-El7UtJ4YXshXbiVbJDKPwQP8c5eafodK-0-6bd78bbba8d878b2cfa8e74194ba46fc)
其中,a1是向量首元素的幂,即A(1)为10的a1次幂;an是向量尾元素的幂,即A(n)为10的an次幂;n是向量的维数。若省略n,则默认创建含有50个元素的对数等分向量。
【例2-3】利用线性等分函数及对数等分函数创建向量。
在命令行窗口中输入以下命令并查看输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_12.jpg?sign=1739319618-4QlNrQ62jYUwhIvQoWHCBIdEpslgPdmw-0-2a00d4ab45a7616dc6a7708646b776ca)
采用冒号表达式法和线性等分函数都能创建线性等分向量,但在使用时有几点区别需要注意。
(1)在冒号表达式法中,an不一定恰好是向量的最后一个元素,只有当向量的倒数第二个元素加步长等于an时,an才正好构成尾元素。
(2)在使用线性等分函数前,必须先确定创建向量的元素个数,但使用冒号表达式法将依据步长和an的限制去创建向量,无须考虑元素个数的多少。
(3)实际应用时,同时限定尾元素和步长去创建向量,可能会出现矛盾,此时要么坚持步长优先,调整尾元素限制;要么坚持尾元素限制,调整等分步长。
2.2.2 向量的算术运算
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_13.jpg?sign=1739319618-cuRa78yVKWG4wb0zKdhsAaDgCcyTLKg0-0-f7e97e5b1a23a4fad25a119089b8efb4)
2.2.2
在MATLAB中,维数相同的行向量可以相加减,维数相同的列向量也可以相加减,标量数值可以与向量直接相乘除。但是,不同维数的向量之间的加减运算是不允许的。
【例2-4】向量的加减和数乘运算示例。
在命令行窗口中输入以下命令并查看输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_14.jpg?sign=1739319618-vd4BJKOxGrswbxCF3twFHnsYvdn5mc7K-0-c62ae63fea65f847d1bd83b9feb0604c)
2.2.3 向量的点积和叉积运算
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_15.jpg?sign=1739319618-LxnmSO50pPVyGHHPg1YBSOCOh6TIWYsI-0-7f577a68004cd6c50734d3e240f10022)
2.2.3
向量的点积即数量积,叉积又称向量积或矢量积。MATLAB是用函数来实现向量的点积、叉积运算的。
1.点积运算
点积运算的定义是将参与运算的两向量各对应位置上的元素相乘,再将各乘积相加。因此,向量点积的结果是一标量而非向量。
(1)对于长度为n的两个实数向量的点积为:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1739319618-j2nQNQJGwPofgIqAiV0L3msFF4dGpPQu-0-0eda1a209c80d108a74586e0b51b087c)
(2)对于复数向量,点积涉及复共轭。须确保向量与自身的内积都为实数正定矩阵。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1739319618-xKsutNroQPADj64XZE9bkIvhDCYFLYmx-0-4070388808d5b6f169dbf414d366d276)
点积运算函数是dot(),其调用格式为:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1739319618-xb14uJHfL5k25Chai1n3vymqJtKUV3ZB-0-0d3a7417aca759eb9be49563b4ea8cc4)
说明:如果A和B是向量,则它们的维数必须相同。如果A和B为矩阵或多维数组,则它们必须具有相同大小。对于实数向量,dot(u,v)=dot(v,u);对于复数向量,复数关系不可互换,dot(u,v)=conj(dot(v,u))。
2.叉积运算
两个三维向量A、B之间的叉积生成一个与这两个向量都垂直的新向量C,即C的方向垂直于A与B决定的平面。用三维坐标表示为
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_19.jpg?sign=1739319618-AtxReZIY4VLyiWTlqF4L98ctmVTPCUcV-0-cc98d1dae37409d69d5ba525a18f6b70)
叉积运算的函数是cross(A,B),该函数计算的是A、B叉积后各分量的元素值,且A、B只能是三维向量。
叉积运算函数是dot(),其调用格式为:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_20.jpg?sign=1739319618-bqARUCWtqNSzhMngrgiEILZz4yCF33EE-0-0c57a176fb37dd2734bbacaec81f5bb3)
说明:①如果A和B为向量,则它们的长度必须为3。②如果A和B为矩阵或多维数组,则它们必须具有相同大小,此时,cross函数将A和B视为三元素向量集合,计算对应向量沿大小等于3的第一个数组维度的叉积。
3.混合积运算
在三维向量之间,综合运用上述两个函数,可实现点积和叉积的混合运算。
【例2-5】向量的点积与叉积运算示例。
在命令行窗口中输入以下命令并查看输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_21.jpg?sign=1739319618-D3Jq7V4NXlQMFIRGrDOEqlYEckZjD9Ah-0-55a48245cfc646297c32da785f60e257)
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_22.jpg?sign=1739319618-Kkrc9mh1idSQP9FjIBPPESHh3VJ3wdNk-0-7ec7a987301c78d7ceea1b3f774e0bc2)
在获取交叉乘积的维度中,A和B的长度必须为3。