Matlab - 矩阵到2的幂

Sim*_*ity 2 matlab matrix exponent

Matlab,我输入了以下命令:

>> a = [1 2; 3 4]

a =

     1     2
     3     4
Run Code Online (Sandbox Code Playgroud)

当我尝试命令时a^2,我得到以下内容:

>> a^2

ans =

     7    10
    15    22
Run Code Online (Sandbox Code Playgroud)

我实际上期待得到:

ans =

       1     4
       9     16
Run Code Online (Sandbox Code Playgroud)

换句话说,我期望将矩阵的每个元素提升到2.

为什么结果如上所示?

谢谢.

Rod*_*uis 15

在MATLAB中,所有单字符运算符都是矩阵运算符.所以,你正在使用矩阵功率,例如,

a^2 == a*a
Run Code Online (Sandbox Code Playgroud)

如果你想对每个元素求平方,你将不得不使用逐元素幂运算符:

>> a.^2
ans = 
    1   4
    9   16
Run Code Online (Sandbox Code Playgroud)

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


Sha*_*hai 6

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

a.^2
Run Code Online (Sandbox Code Playgroud)

需要注意的区别^2.^2!操作数之前的
小点.标记了元素操作,而不是矩阵操作.

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