• Domingo 22 de Diciembre de 2024, 22:45

Autor Tema:  Eliminar indices en matlab  (Leído 2003 veces)

AndreitaG

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Eliminar indices en matlab
« en: Domingo 27 de Febrero de 2011, 17:31 »
0
Hola tengo un problemita, estoy tratando de hacer un cardiotacograma en matlab

Tod funciona según yo perfecto, solo que tengo un problema, al final tengo que detectar las ondas R unicamente así que una vez filtrada mi señal ya solo detecto eso, despues busco los indices en donde ya supera un voltaje de umbral y haciendo esto elimino los indices que se "repiten" es decir que detecta la subida y la bajada y para eliminar errores he visto si la diferencia entre esos dos numeros es par e impar y arreglo los indices para que queden enteros, despues de esto le asigno a los indices el valor correspondiente de amplitud. Mi problema ES  que ahora que ya hice los indices que no me sirven cero esto a final de cuenta me grafica un cero que puedo hacer para eliminar cuando los valores son cero o decirle que no me los grafique??

les dejo parte de mi codigo para ver si me pueden ayudar

%Deteccion de la Onda R%

indices=find((ECGR2int<=24)&(ECGR2int>=20));
R1=ECGR2int(indices);
f=1;
for i=1:length(indices)-1
   
    x=indices(i+1)-indices(i);
    res=rem(x,2);
    if res==0
    x=x;
else
    x=x+1;
end
 
 if x<=10
     
     indices(i)=indices(i)+(x/2);
     indices(i+1)=1;
 else
     indices(i)=indices(i);
 end

end



R2=ECGR2int(indices);

figure(6)
subplot(2,1,1)
stem(R2)
title('Grafica de las ondas R sin quitar el error de ECGR2int(0)')

for j=1:length(R2)

if R2(j)<=1
    R2(j)=0;
else
    R2(j)=R2(j);
end
end


figure(6)
subplot(2,1,2)
stem(R2)
title('Tacograma')

jjasso5

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Eliminar indices en matlab
« Respuesta #1 en: Lunes 28 de Febrero de 2011, 09:26 »
0
Me parece que estás manejando los índices de manera innecesariamente complicada.
Independientemente de los valores que tengas, si tienes un vector v, puedes eliminarle los ceros (o cualquier valor) de esta manera.

v = [3 2 0 4 5 0 9 0 5 0 9 7 6 5 4 0]
subplot(211)
stem(v)

v(find(v==0)) = [];
subplot(212)
stem(v)

AndreitaG

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Eliminar indices en matlab
« Respuesta #2 en: Lunes 28 de Febrero de 2011, 16:32 »
0
Hola muchas gracias lo intentare y te digo si me resulto, por lo que puedo ver si es cicerto todo se puede arreglar con un find.

Mil gracias!!