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

时间:2012-06-02 05:00:37

标签: matlab syntax operators

鉴于代码:

 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.

运营商.到底做了什么?

2 个答案:

答案 0 :(得分:53)

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

.^是一个逐点¹(即元素方面)的幂,因为.*pointwise product

  

.^   阵列功率。 A.^B是具有A(i,j)B(i,j)元素的矩阵。 AB必须具有相同的大小,除非其中一个是标量。

C.f。

¹)因此点。

答案 1 :(得分:5)

MATLAB文档中有一整页专门讨论该主题:Array vs. Matrix Operations。它的要点如下:

  

MATLAB®有两种不同类型的算术运算:数组运算矩阵运算。您可以使用这些算术运算来执行数值计算,例如,添加两个数字,将数组的元素提升到给定的幂,或者乘以两个矩阵。

     

矩阵运算遵循线性代数规则。相比之下,数组操作逐个元素操作并支持多维数组。句点字符(.)区分数组操作和矩阵操作。但是,由于矩阵和数组运算对于加法和减法是相同的,因此不需要字符对.+.-