Covariance Matrix Rotation

14 Ansichten (letzte 30 Tage)
Umit
Umit am 14 Mai 2012
Kommentiert: Jim am 2 Apr. 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 Kommentare
Umit
Umit am 14 Mai 2012
I matrices, I believe it has to be in this way, for vectors it is just M2*M1*Vector
Jim
Jim am 2 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by