![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=1739284017-Xu4WEX0rYfmkiPAa5FLy8tsFj1JfmS8t-0-28be6f655b7a56b3e36dd334b9d35299)
图1-2 dim沿其运算的维度
【例1-3】点积运算。
(1)创建两个简单的三元素向量。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P15_19642.jpg?sign=1739284017-wRUkJffuY2vhfFBLJOeEkiDzQmJkm8A3-0-e6d7825ff159b5e7684682c203375787)
结果为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=1739284017-O5IvhboKn48pO9wrvRrS4jQ0b8Sv4Hao-0-03b395b0cee0b2126f6b06e652630c9e)
结果为一个复数标量,因为A和B是复数。通常,两个复数向量的点积也是复数,获取一个复数向量与其自身的点积除外。
(3)计算A与自身的内积。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P16_19646.jpg?sign=1739284017-mgPDtoudxac6GK2Suyfrc2JCJEDI5anx-0-d6a39493699c59544ef9be13d41357a9)
结果为一个实数标量。向量与自身的内积与向量norm(A)的长度相关。
(4)矩阵的点积。
![](https://epubservercos.yuewen.com/51B130/26580818401177306/epubprivate/OEBPS/Images/Figure-P16_19648.jpg?sign=1739284017-5ldF9KBqEDYAyA1aG4zsjLsRB8bdD5Xo-0-26d519eb4416756c3c5a42191f2ffd4c)
结果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=1739284017-4qPiVjzBfbeLPi7IDtv86U0FKObacX61-0-3a8d42a58b3eafd660f26dd072a097d8)
在本例中,D(1)=46是A(1,:)与B(1,:)的点积。