- MATLAB 2022a从入门到精通
- 魏鑫等编著
- 1644字
- 2023-07-26 17:11:59
2.2 向量
向量是一个有方向的量,它是高等数学、线性代数中的概念,在力学、电磁学等领域有着广泛应用。向量是由n个数a1,a2,…,an组成的有序数列,形式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_4.jpg?sign=1739032772-UsVnq1hif8TJcPUmJvquCflAN7yNTSbQ-0-bdefd000aabb9fe43302e695654cab70)
2.2.1 创建向量
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_5.jpg?sign=1739032772-0eVSD80dLYEEDSrXkATQ8lr02kqR51AN-0-530751e336787dbcebd78835af81f47a)
2.2.1
在MATLAB中,向量主要采用一维数组来表示。创建向量主要有直接输入法、冒号表达式法和函数法。
1.直接输入法
在命令提示符之后直接输入一个向量,其格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_6.jpg?sign=1739032772-pHZ1P6IFHM4Brnrh4YYB0qLYRakBpQ51-0-f9482de91623b8dee05de0306c2a9c06)
【例2-1】采用直接输入法创建向量。
在命令行窗口中输入以下命令并显示输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_7.jpg?sign=1739032772-NRkP1vvOoVEMSVCu8fptg6DMjcaVxsnp-0-8997bc5538bf5537dd7a4966c50be9d2)
说明:在后面的算例中,直接创建的向量或矩阵语句后采用了“;”结尾,表示不在命令行窗口中输出结果,不输入“;”可直接显示结果。
2.冒号表达式法
利用冒号表达式也可以创建向量,其格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_8.jpg?sign=1739032772-AHi57IkaixVEe52rGAt88YGeKW3AYwSD-0-1bffc4efe059d743f5b78d9d657b0fe2)
其中,a1为向量的第一个元素;an为向量最后一个元素的限定值;step是变化步长,可以是正数、负数或者小数,省略时系统默认步长为1。
MATLAB支持构造任意步长的向量,步长甚至可以是负数。
【例2-2】利用冒号表达式法创建向量。
在命令行窗口中输入以下命令并显示输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_9.jpg?sign=1739032772-EWIq4QbLyJcx89aCIZH64T75sAxs8o6V-0-4001f30b4d3d6ac90393b02f1af7abcc)
3.函数法
MATLAB提供了两个函数用于直接创建向量:一个是实现线性等分的函数linspace;另一个是实现对数等分的函数logspace。
(1)函数linspace的通用格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_10.jpg?sign=1739032772-NbIC0c5oXOtQsmF7OixzMFjLLWRSQIJp-0-ca5b4d87fce3fa2f12ee345001eb9997)
其中,a1是向量的首元素,an是向量的尾元素,n把a1至an的区间分成向量首尾元素之外的其他n-2个元素。若省略n,则默认创建含有100个元素的线性等分向量。
(2)函数logspace的通用格式如下:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_11.jpg?sign=1739032772-lz6VBgEIa3N9JveHfbHyFSiH8rfVfyHt-0-9ecedd08118e7beb27bc164794d196b2)
其中,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=1739032772-WBGv8n7GKRmR51QQA68suu9Q2ZXGEzpx-0-29ad080001717b0a23eec609c8ac896b)
采用冒号表达式法和线性等分函数都能创建线性等分向量,但在使用时有几点区别需要注意。
(1)在冒号表达式法中,an不一定恰好是向量的最后一个元素,只有当向量的倒数第二个元素加步长等于an时,an才正好构成尾元素。
(2)在使用线性等分函数前,必须先确定创建向量的元素个数,但使用冒号表达式法将依据步长和an的限制去创建向量,无须考虑元素个数的多少。
(3)实际应用时,同时限定尾元素和步长去创建向量,可能会出现矛盾,此时要么坚持步长优先,调整尾元素限制;要么坚持尾元素限制,调整等分步长。
2.2.2 向量的算术运算
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_13.jpg?sign=1739032772-mnRbx16SSJR0TXFeiTfmUjeveG3lsCTB-0-cac6d47405d1b599ba92955d428a1b11)
2.2.2
在MATLAB中,维数相同的行向量可以相加减,维数相同的列向量也可以相加减,标量数值可以与向量直接相乘除。但是,不同维数的向量之间的加减运算是不允许的。
【例2-4】向量的加减和数乘运算示例。
在命令行窗口中输入以下命令并查看输出结果。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_14.jpg?sign=1739032772-WPyXeVMCAVWasBoDOdzXkgkNJbf63KnC-0-ff8db7807a99352f1acd537fef27bbdf)
2.2.3 向量的点积和叉积运算
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_15.jpg?sign=1739032772-moqvmS9kXwNKZaloqkv6ymfokNKnh5tj-0-d443adf4fec2a44208b929a72c8eb983)
2.2.3
向量的点积即数量积,叉积又称向量积或矢量积。MATLAB是用函数来实现向量的点积、叉积运算的。
1.点积运算
点积运算的定义是将参与运算的两向量各对应位置上的元素相乘,再将各乘积相加。因此,向量点积的结果是一标量而非向量。
(1)对于长度为n的两个实数向量的点积为:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_16.jpg?sign=1739032772-3bZUtIIrs8pvIdoL5Tu0bMr5LxAJkKG3-0-532447a9b997e159a987e95a5de517e3)
(2)对于复数向量,点积涉及复共轭。须确保向量与自身的内积都为实数正定矩阵。
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_17.jpg?sign=1739032772-mOQkWMfhVYLR2AwAm0lqs3saTdcv7fJd-0-8e273e38aa40d39ae9a665dca69c34a9)
点积运算函数是dot(),其调用格式为:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_18.jpg?sign=1739032772-pfRECajtAv5nxZb5WkmFsu8nRJQEAb5A-0-9d0bdbe57b7df3436397056377239122)
说明:如果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=1739032772-cI8owHaehOGWxatjpjFQvULFCnRbiYf7-0-fee842ea7933bf9a825e34f6f7b4e1d2)
叉积运算的函数是cross(A,B),该函数计算的是A、B叉积后各分量的元素值,且A、B只能是三维向量。
叉积运算函数是dot(),其调用格式为:
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_20.jpg?sign=1739032772-OxkXPISPON6tovzuriSEvEi2avqrFMCG-0-ec165eda0d53b50c9b0846229ad480c9)
说明:①如果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=1739032772-ePmzsORUSX570gT8iz74AKLjEj3qcmzg-0-3350f83cbed94e8f573d63d779c0bdf2)
![](https://epubservercos.yuewen.com/67E6CB/26895589707129006/epubprivate/OEBPS/Images/txt003_22.jpg?sign=1739032772-4zzqgGgDmUkFVSLdZOak2nK1qKZi8syC-0-048700a1d79195b699537afb598ed3e7)
在获取交叉乘积的维度中,A和B的长度必须为3。