运营商“点”(。)是什么意思?
给定代码:
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。A
和B
必须具有相同的大小,除非其中一个是标量。
比照
- “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和数组操作是相同的,因此字符对.+
和.-
是不必要的。