运营商“点”(。)是什么意思?

给定代码:

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. 

操作员是什么? 准确地做?

点本身不是一个操作符, .^是。

.^是一个逐点¹(即元素明智的)权力,因为.*是逐点产品 。

.^arrays电源。 A.^B是具有B(i,j)幂的元素A(i,j)的matrix。 AB必须具有相同的大小,除非其中一个是标量。

比照

  • “matrix和数组算术”: http : //www.mathworks.de/help/techdoc/ref/arithmeticoperators.html
  • “Pointwise”: http : //en.wikipedia.org/wiki/Pointwise
  • “元素明智的操作”: http : //www.glue.umd.edu/afs/glue.umd.edu/system/info/olh/Numerical/Matlab_Matrix_Manipulation_Software/Matrix_Vector_Operations/elementwise

¹)因此,点。

MATLAB文档中有一整个专门讨论该主题的文章: arrays与matrix运算 。 它的要点如下:

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

matrix运算遵循线性代数的规则。 相比之下,数组操作通过元素操作执行并支持multidimensional array 句点字符( . )区分arrays操作和matrix操作。 但是,由于加法和减法的matrix和数组操作是相同的,因此字符对.+.-是不必要的。