我的目标是在我的Python代码中使用下面在Matlab中定义的矩阵,但是显然对象没有相同的规范?因此,我认为我犯了一个错误。
Tforward = np.array(np.mat('0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274; \
0.219417649252501 0.449283757993216 0.449283757993216 0.219417649252501 -0.219417649252501 -0.449283757993216 -0.449283757993216 -0.219417649252501; \
0.569359398342846 0.402347308162278 -0.402347308162278 -0.569359398342846 -0.083506045090284 0.083506045090284 -0.083506045090284 0.083506045090284; \
-0.083506045090284 0.083506045090284 -0.083506045090284 0.083506045090284 0.569359398342846 0.402347308162278 -0.402347308162278 -0.569359398342846; \
0.707106781186547 -0.707106781186547 0 0 0 0 0 0; \
0 0 0.707106781186547 -0.707106781186547 0 0 0 0; \
0 0 0 0 0.707106781186547 -0.707106781186547 0 0; \
0 0 0 0 0 0 0.707106781186547 -0.707106781186547'))
sum(Tforward**2,2)
>>> array([3.00428749, 2.99571251, 2.99571251, 3.00428749, 3.00428749,
2.99571251, 2.99571251, 3.00428749])
Tforward = [ 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274 0.353553390593274;
0.219417649252501 0.449283757993216 0.449283757993216 0.219417649252501 -0.219417649252501 -0.449283757993216 -0.449283757993216 -0.219417649252501;
0.569359398342846 0.402347308162278 -0.402347308162278 -0.569359398342846 -0.083506045090284 0.083506045090284 -0.083506045090284 0.083506045090284;
-0.083506045090284 0.083506045090284 -0.083506045090284 0.083506045090284 0.569359398342846 0.402347308162278 -0.402347308162278 -0.569359398342846;
0.707106781186547 -0.707106781186547 0 0 0 0 0 0;
0 0 0.707106781186547 -0.707106781186547 0 0 0 0;
0 0 0 0 0.707106781186547 -0.707106781186547 0 0;
0 0 0 0 0 0 0.707106781186547 -0.707106781186547];
sum(Tforward.^2,2)
>>> ans =
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
任何帮助表示感谢
MATLAB Sum和Python Sum之间的区别不是一回事。如果您有MATRIX A,则Matlab中的sum(A,2)会为您提供第二列的和。但是,在Python中,sum(A,2)会为您提供列表中的总和,但也会应用您在列表中输入的数字。
因此,在MATLAB中,您执行了sum(A(:,2)),而在Python中,您进行了sum(A + 2)。我相信Taha在您想要np.sum的注释中是正确的]