在Matlab
中,我输入了以下命令:
>> a = [1 2; 3 4]
a =
1 2
3 4
当我尝试命令a^2
时,我得到了以下内容:
>> a^2
ans =
7 10
15 22
我实际上期待得到:
ans =
1 4
9 16
换句话说,我希望将矩阵的每个元素都提升到 2 。
为什么结果如上所示?
感谢。
答案 0 :(得分:15)
在MATLAB中,所有单字符运算符都是矩阵运算符。因此,您正在使用矩阵电源,例如
a^2 == a*a
如果要对每个元素进行平方,则必须使用元素明确的幂运算符:
>> a.^2
ans =
1 4
9 16
阅读有关MATLAB运算符here的更多信息。
答案 1 :(得分:6)
当您在Matlab中键入a^2
时,您实际执行的是a*a
(矩阵乘法)。如果您想在Matalb中执行元素明细操作,则需要输入
a.^2
请注意^2
和.^2
之间的区别!
操作数之前的小点.
标记元素方式操作,而不是矩阵操作。
其他操作也是如此,例如/
与./
,*
与.*
等。