33

给定代码:

 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.

操作员具体.做什么?

4

2 回答 2

56

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

.^逐点¹(即逐元素)幂,逐点乘积.*也是如此。

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

比照

¹) 因此点。

于 2012-06-02T05:05:44.167 回答
6

MATLAB 文档中有一整页专门讨论该主题:数组与矩阵运算。它的要点如下:

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

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

于 2017-01-24T11:37:07.500 回答