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

JAN*_*JAN 31 syntax matlab operators

鉴于代码:

 A = [1 2 3; 3 2 1]
 B = A.^2
Run Code Online (Sandbox Code Playgroud)

输出 :

B =

     1     4     9
     9     4     1
Run Code Online (Sandbox Code Playgroud)

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

输出是:

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

操作员.究竟做了什么?

kay*_*kay 54

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

.^是一个pointwise¹(即逐元素)功率,作为.*逐点乘积.

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

比照

¹)因此点.

  • 在[算术运算的MATLAB文档](http://www.mathworks.com/help/techdoc/ref/arithmeticoperators.html)`.^`被称为"数组幂",而`.`被称为"数组乘法" ,这可能是有用的知道,例如.在搜索更多信息. (15认同)

Dev*_*-iL 6

MATLAB文档中有一整页专用于此主题:数组与矩阵运算.它的要点如下:

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

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