Matlab - ayuda por favor

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 34 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

ayuda por favor

Publicado por George (52 intervenciones) el 27/10/2009 15:38:52
hola buen amiga o amigo, tengo este problema estoy tratando de calcular el arcotan=atan pero no se como introducir las condiciones ya que cada cuadrante tiene sun condiciones a la hora de sumar el complemento estos son mis datos: la primera columna seria en seno o la componente x y el coseno la componente y es importamte ver los signos
0.475929593132431 -1.956052769263535
-0.369504147567628 -0.278716885129981
-1.654592629850085 1.348081389005676
-0.321797366993992 -0.731984796361658
0.234747491347781 -1.032032768804797

y el programa es:
clear all
close all
clc
load dire.txt
promdiavx=dire(:,1);
promdiavy=dire(:,2);
teta=(atan(promdiavx./promdiavy).*180/pi)'
if (promdiavx)>0 & (promdiavy)>0
elseif ((promdiavx)>0 & (promdiavy)<0)|((promdiavx)<0 & (promdiavy)<0)
teta=teta+180
if ((promdiavx)<0 & (promdiavy)>0)
teta=teta+360
end
end
teta=teta'

%promdiavx= es la componente x , promdiavy es la componente vy.
los resultados deben ser aproximadamente
166
232
309
203
167

espero su ayuda..graciass.. ahh y si te animas puedes dejarme tu correo para contactarnos..muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda por favor

Publicado por lucera (119 intervenciones) el 27/10/2009 21:05:29
creo que el problema que veo no es en las condiciones si no que promdiavx, por lo que veo es un vector y lo estas tratando como un escalar..

lo que puedes hacer seria algo parecido a:

clear all
close all
clc
load dire.txt.
promdiavx=dire(:,1);
promdiavy=dire(:,2);
teta=[];
for i=1:length(promdiavy)
if (promdiavx(i))>0 & (promdiavy(i))>0
teta(i)=(atan(promdiavx(i)/promdiavy(i)).*180/pi);
elseif ((promdiavx(i))>0 & (promdiavy(i))<0)|((promdiavx(i))<0 & (promdiavy(i))<0)
teta(i)=(atan(promdiavx(i)/promdiavy(i)).*180/pi)+180;
................
................
.............

prueba algo asi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 34 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

RE:ayuda por favor

Publicado por George (52 intervenciones) el 28/10/2009 15:04:44
Gracias Lucera...resolviste mi problema..saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar