Covariance Matrix Rotation

13 visualizaciones (últimos 30 días)
Umit
Umit el 14 de Mayo de 2012
Comentada: Jim el 2 de Abr. de 2014
Hi, I have a matrix 3 by 3 and I want to rotate it with theta and phi angles (result of spherical coordinates), counterclockwise. I have the following function;
function [NewMatrix] = SphericalRotation(Matrix, theta, phi, ScaleRatio)
M1 = [cos(theta) -sin(theta) 0; sin(theta) cos(theta) 0; 0 0 1];
M2 = [1 0 0; 0 cos(phi) -sin(phi); 0 sin(phi) cos(phi)];
NewMatrix = ScaleRatio^0 * M2 * M1 * Matrix * M1' * M2';
end
When;
Matrix = [4 0 0; 0 4 0; 0 0 4],
theta = 0.78,
phi=0.61,
scaleRatio= 1.2 (Not important, results 1 always right now),
I get
NewMatrix=[4 0 0; 0 4 0; 0 0 4]
I don't think this is correct, I should get something different, it is not rotated at all. I believe I am missing sth. very basic. Any help greatly appreciated. Thanks
  3 comentarios
Umit
Umit el 14 de Mayo de 2012
I matrices, I believe it has to be in this way, for vectors it is just M2*M1*Vector
Jim
Jim el 2 de Abr. de 2014
Your test matrix Matrix represents a spherical probability distribution, i.e., the principal values are all identical. There's no way to orient a sphere, which is why your function returns an unaltered output. Try setting Matrix = [10 0 0; 0 3 0; 0 0 1] and you'll see a difference in the output.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by