![MATLAB函数及应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/601/47216601/b_47216601.jpg)
上QQ阅读APP看书,第一时间看更新
3.dot函数
dot函数可实现数组的点积运算,但是运算规则要求数组A和B的维数相同,该函数的语法格式为:
C=dot(A,B):返回A和B的标量点积。
· 如果A和B是向量,则它们的长度必须相同。
· 如果A和B为矩阵或多维数组,则它们必须具有相同大小。在【例1-3】中,dot函数将A和B视为向量集合。该函数计算对应向量沿大小不等于1的第一个数组维度的叉积。C=dot(A,B,dim):计算A和B沿维度dim的点积。dim输入是一个正整数标量。考虑两个二维输入数组:A和B。
· dot(A,B,1):将A和B的列视为向量,并返回对应列的点积,如图1-2所示。
· dot(A,B,2):将A和B的行视为向量,并返回对应行的点积,过程如图1-2所示。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P15_3848.jpg?sign=1739280882-6M1d2cZ7i0kyS6NW4aW0Ho20UaDiIDE6-0-59ef9712cfc867a99d620653b9250a35)
图1-2 dim沿其运算的维度
【例1-3】点积运算。
(1)创建两个简单的三元素向量。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P15_19642.jpg?sign=1739280882-McdGl8tewE5EGpccDPYQMDHYOn6YCBoU-0-cc1aadcbbc753a03f0fe884c777983a3)
结果为8,因为C=A(1)∗B(1)+A(2)∗B(2)+A(3)∗B(3)。
(2)创建两个复数向量。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P16_19644.jpg?sign=1739280882-u1WJnhWGhC4BsXjKE6SEl0jwhf6e0Hoa-0-246aa3f2e60b05402f764574d6a270d5)
结果为一个复数标量,因为A和B是复数。通常,两个复数向量的点积也是复数,获取一个复数向量与其自身的点积除外。
(3)计算A与自身的内积。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P16_19646.jpg?sign=1739280882-lIek6vFFJEZHrlBkt9PFKFz2aPyOhCTc-0-1c5570b2ed2b8582226a9bd59eed8abd)
结果为一个实数标量。向量与自身的内积与向量norm(A)的长度相关。
(4)矩阵的点积。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P16_19648.jpg?sign=1739280882-6WBCoH6tGxHLzbb5E5Ny2dXHSZPNH3uB-0-26e544f40f2f537b329f003e19643e53)
结果C包含三个不同的点积。dot将A和B的各列视为向量,并计算对应列的点积,如C(1)=54是A(:,1)与B(:,1)的点积。
计算A和B的点积,并将rows视为向量。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P16_19649.jpg?sign=1739280882-Mr8rEck4qYVxtmn3YtW64But5Hv0HXLw-0-fa89762cb60a3742a8950fc58601de07)
在本例中,D(1)=46是A(1,:)与B(1,:)的点积。