Azzera filtri
Azzera filtri

making a rotation matrix

1 visualizzazione (ultimi 30 giorni)
Jeroen
Jeroen il 22 Mag 2012
{
clc
b = [cos((angle/180)*pi) -sin((angle/180)*pi);sin((angle/180)*pi) cos((angle/180)*pi)];
for i = 1:1:size(nr_out,1)
a = [nr_out(i,1);nr_out(i,2)];
c = b*a;
rotatie(i) = [c(1,1) c(2,1)];
end
}
Hello I am trying to make a rotation matrix. To do that i multiply the x and y from a file with the rotation matrix [cos(a) -sin(a); sin(a) cos(a)] What I want is that the matrix 'rotatie' grows with in the first column the x value ( c(1,1)) and in the second column the y-value(c(2,1)).
The error it gives is this: In an assignment A(I) = B, the number of elements in B and I must be the same.
Gr jeroen

Risposte (1)

Honglei Chen
Honglei Chen il 22 Mag 2012
You need to do something like
rotatie(i,:) = [c(1,1) c(2,1)];
But if I understand your question correctly, you can do it without a loop
rotatie = (b*nr_out.').'
  2 Commenti
Jeroen
Jeroen il 22 Mag 2012
I am sorry I forgot to tell that the matrix nr_out is a matrix that consist of x,y,z,ex,ey,ez and I have to rotate the whole matrix with 20.58 degree in the xy-plane with their energies.
Honglei Chen
Honglei Chen il 22 Mag 2012
Then you can just use the first solution, use rotatie(i,:) instead of rotatie(i)

Accedi per commentare.

Categorie

Scopri di più su Language Fundamentals in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by