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



给定代码:

 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.

操作员.到底做什么?

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

.^是逐点¹(即元素)的幂,因为.*是逐点乘积。

.^ 阵列电源。 A.^B是具有A(i,j) B(i,j)幂的元素的矩阵。AB的大小必须相同或兼容。

C.f.

  • "数组与矩阵运算":https://mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html
  • "逐点":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 文档中有一整页专门讨论这个主题:数组与矩阵运算。它的要点如下:

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

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

最新更新