在MATLAB中,"."和"*"符号在不同运算中扮演着关键角色,区分了数组和矩阵的运算方式。
在基本的数值乘法中,无论是"m.*n"还是"m*n"(如m=2, n=3),两者的结果都是6,因为它们都表示普通的乘法运算。
然而,当涉及到矩阵运算时,"."和"*"的意义大相径庭。例如,"a.*b"表示矩阵a的每个元素与矩阵b的对应元素相乘,生成一个新的矩阵,而"a*b"则是矩阵乘法,要求a的列数等于b的行数。这就是MATLAB通过"."来区分矩阵运算和数组运算的地方,以帮助用户明确运算类型。
具体运算规则如下:
- 数组加法和矩阵加法使用"+",两者相同。
- 数组乘法使用".*",逐元素相乘,要求元素形状匹配或有一个是标量。
- 矩阵乘法使用"*",满足列数和行数对应条件。
- 数组除法有右除(./)和左除(.\),元素逐个相除。
- 矩阵除法涉及逆矩阵,右除等价于*A*inv(B),左除等价于inv(B)*A。
值得注意的是,初学者很容易混淆这些运算,错误的使用可能导致非法操作或错误结果。特别在处理方阵时,即使两个方阵大小相同,数组运算和矩阵运算产生的结果却大相径庭,因此在操作时需格外谨慎。