making a rotation matrix

2 visualizaciones (últimos 30 días)
Jeroen
Jeroen el 22 de Mayo de 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

Respuestas (1)

Honglei Chen
Honglei Chen el 22 de Mayo de 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 comentarios
Jeroen
Jeroen el 22 de Mayo de 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 el 22 de Mayo de 2012
Then you can just use the first solution, use rotatie(i,:) instead of rotatie(i)

Iniciar sesión para comentar.

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by