在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。
为什么结果如上图?
谢谢。
在 MATLAB 中,所有单字符运算符都是矩阵运算符。因此,您正在使用矩阵功率,例如,
a^2 == a*a
如果要对每个元素求平方,则必须使用逐元素幂运算符:
>> a.^2
ans =
1 4
9 16
在此处阅读有关 MATLAB 运算符的更多信息。
当您a^2
在 Matlab 中输入时,您实际执行的是a*a
(矩阵乘法)。如果你想在 Matalb 中进行元素操作,你需要输入
a.^2
^2
注意和之间的区别.^2
!
操作数前面的小点.
标记元素操作,而不是矩阵操作。
其他操作也是如此,例如/
vs ./
、*
vs..*
等。