2

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

为什么结果如上图?

谢谢。

4

2 回答 2

16

在 MATLAB 中,所有单字符运算符都是矩阵运算符。因此,您正在使用矩阵功率,例如,

a^2 == a*a

如果要对每个元素求平方,则必须使用逐元素幂运算符:

>> a.^2
ans = 
    1   4
    9   16

在此处阅读有关 MATLAB 运算符的更多信息。

于 2013-01-24T09:28:23.057 回答
6

当您a^2在 Matlab 中输入时,您实际执行的是a*a矩阵乘法)。如果你想在 Matalb 中进行元素操作,你需要输入

a.^2

^2注意和之间的区别.^2
操作数前面的小点.标记元素操作,而不是矩阵操作。

其他操作也是如此,例如/vs ./*vs..*等。

于 2013-01-24T09:28:34.317 回答