Matlab - Duda rápida

   
Vista:

Duda rápida

Publicado por Francisco (11 intervenciones) el 20/07/2011 14:48:19
Hola a todos, tengo una duda rápida.
Mi intención es hacer un filtrado de una serie de datos, por ej si tengo

>>x=[1 3 6 3 1] Quiero QUITAR todos los valores menores que 3 de manera que el resultado sea
>>x=[3 6 3]

Yo hacia:
for i=1:1:5
if x(i)<3
x(i)=[ ];
end
end

Pero me da error...
??? Subscripted assignment dimension mismatch.

Hay alguna funcion en MatLab que se encargue de esto??
Alguna sugerencia?

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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Duda rápida

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 20/07/2011 16:13:37
hola Francisco.
tengo 4 maneras de resolver tu problema.
Bueno alli te copio las 4 maneras.
Ya tu, lo tomas que deseas.

%===========================
%1RA FORMA
clear all
x1=[1 3 6 3 1 10 3 4 6 5 1 23 ] ;
indice=find(x1>=3);
x1=x1(indice);
display(x1);
%=============================

%=============================
%2DA FORMA
clear all
x2=[1 3 6 3 1 10 3 4 6 5 1 23];
n=length(x2);
i=1;
while i<=n
if x2(i)<3
x2(i)=[];
n=length(x2);
end
i=i+1;
end
display(x2)
%======================

%=============================
%3RA FORMA
clear all;
x3=[1 3 6 3 1 10 3 4 6 5 1 23];
n=length(x3);
k=1;
for i=1:n
if x3(i)<3
else
X(k)=x3(i);
k=k+1;
end
end
x3=X;
display(x3)
%======================


%=============================
%4TA FORMA
clear all;
x4=[1 3 6 3 1 10 3 4 6 5 1 23];
n=length(x4);
k=1;
for i=1:n
if x4(i)>=3
X(k)=x4(i);
k=k+1;
end
end
x4=X;
display(x4)
%======================


EJECUCION
>> filtrarvector
x1 =
3 6 3 10 3 4 6 5 23


x2 =
3 6 3 10 3 4 6 5 23


x3 =
3 6 3 10 3 4 6 5 23


x4 =
3 6 3 10 3 4 6 5 23


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.com
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
Imágen de perfil de Dave

Duda rápida

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 25/07/2011 06:58:20
Hola!!!;

La primera forma es la más eficiente.

Saludos
Dave
correa.dave30@gmail.com
http://fismatlab.blogspot.com/
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