Matlab - Igualar en longitud series de datos diferentes

   
Vista:

Igualar en longitud series de datos diferentes

Publicado por Nekane (1 intervención) el 11/09/2009 10:07:44
Hola;

Soy nueva con el Matlab, y tras una lucha continua,, expongo aqui mi duda a ver si alguien puede ayudarme.
Quiero comparar dos parámetros que varían en el tiempo entre ellos mismos para calcular r2, siendo los vectores de distinta longitud.
Hasta ahora he fijado un valor t1 y tf apropiado para comparar las 2 series. Me vuelve a surgir el problema, ya que una de las series tiene más valores que la otra dentro de esos tiempos comunes.
Hay alguna forma de que Matlab me replique aquellos valores de tiempo que no tiene la serie más corta y además me asigne un valor NaN a mi parámetro.
No se si me he explicado bien, no me entiendo ni yo misma.

Gracias de antemano
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:Igualar en longitud series de datos diferentes

Publicado por fismat (391 intervenciones) el 11/09/2009 16:31:42
Hola Nekane,

Hasta donde entiendo tienes dos vectores en un mismo rango de tiempo y cada uno de ello tiene un valor a diferentes pasos de tiempo y desearias comparar los datos que pertenecen a un mismo tiempo, vamos a ver que podemos hacer.

% Primer vector x,y
x1=1:50;
y1= ceil(5*rand(size(x1)));

% Segundo vector x,y
x2=1:2:50;
y2= ceil(5*rand(size(x2)));

% Encuentra los valores semejantes (posiciones) y los indices de cada uno
% de esos valores semejantes
[val, ix1, ix2] = intersect(x1, x2)

% Graficas las dos series considerando solo las posiciones coincidentes
plot(x1(ix1),y1(ix1),'.b',x2(ix2),y2(ix2),'.r')

% realiza un analisis estadistico (coeficiente r)
r=corrcoef(y1(ix1),y2(ix2));
r(1,2)

Te sugiero que coloques algun ejemplo o un segmento de los datos que estas analizando, asi tendrías mayor posibilidad de ayuda,

Saludos
Fismat
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

RE:Igualar en longitud series de datos diferentes

Publicado por Paco (2 intervenciones) el 11/09/2009 21:04:38
Podrias probar interpolando (por el metodo que mas te convenga en funcion de tus datos) para obtener una estimacion de los valores correspondientes a aquellos valores de tiempo que te aparecen en una de las series y no en la otra. Aunque no soy un experto en MATLAB, si se que tiene funciones que te hacen la interpolacion. Debes tener cuidado con aquellos valores de tiempo que queden mas alla de los limites originales de tu serie de datos, ya no seria interpolacion sino extrapolacion, y puedes encontrarte con resultados raros, especialmente si estas lejos del limite original.

Espero que te sirva de ayuda.

Un saludo,

PACO
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