运算符“点”(.)是什么意思?

33

给定代码:

 A = [1 2 3; 3 2 1]
 B = A.^2

输出结果:

B =

     1     4     9
     9     4     1

但是如果我这样做:B = A^2

输出结果为:

Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

运算符 . 到底是做什么的?


8
B = A^2 表示 B = A * A,但是考虑到矩阵 A 的维度,这个操作是非法的。 - Serg
2个回答

56

点本身不是运算符,.^ 是运算符。

.^ 是逐元素幂运算(即按元素运算),而 .*逐元素乘积

.^ 数组幂次方。 A.^B 是矩阵,其元素为 A(i,j)B(i,j) 的幂次方。 AB 的大小必须相同或兼容。

参见:

¹) 因此有点的符号。


16
MATLAB算术运算文档中,.^被称为“数组幂”,.*被称为“数组乘法”,这些信息可能对查找更多信息有用。 - nrz

6
在MATLAB文档中,有一页专门介绍了这个主题:Array vs. Matrix Operations。其要点如下:
MATLAB®具有两种不同类型的算术运算:数组操作矩阵操作。你可以使用这些算术运算来执行数值计算,例如加法、将数组元素提高到给定幂次或乘法等。 矩阵操作遵循线性代数规则。相比之下,数组操作按元素操作并支持多维数组。句号字符(.)区分数组操作和矩阵操作。但是,由于加法和减法的矩阵和数组操作相同,因此字符对.+.-是不必要的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接