Matlab - ayuda

   
Vista:

ayuda

Publicado por alvaro (23 intervenciones) el 03/12/2013 08:28:22
Hola a todos!. Esta es mi primera consulta en este foro, espero me puedan ayudar.

necesito eliminar datos de un vector usando "for" , para crear otro, por ejemplo del vector:
A=[1 2 3 0 5 6 7 0 0 8 9 ]
obtener un nuevo vector sin 0 :
B=[1 2 3 4 5 6 7 8 9]



espero me puedan ayudar!
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

ayuda

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 04/12/2013 03:39:47
Cual seria tu avance de tu código, que es lo que haz hecho ahorita?.
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

ayuda

Publicado por alvaro (23 intervenciones) el 04/12/2013 05:26:05
es bastante extenso, pero ya he solucionado la duda.
gracias de todas maneras!

sin embargo me ha surgido otra duda, el tema es que tengo que trabajar con varios excel de datos a través de matlab, sin embargo no se como hacer que el programa que he creado pueda abrir todos los excel de manera automatica... no se si me explico
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 xve

ayuda

Publicado por xve (12 intervenciones) el 04/12/2013 07:17:18
Hola Alvaro, nos podrías mostrar como lo solucionaste?
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

ayuda

Publicado por alvaro (23 intervenciones) el 04/12/2013 07:25:27
al final no use un siclo for, simplemente use algo asi:

B =A(find(A ~= 0));
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 JOSE JEREMIAS CABALLERO

ayuda

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 04/12/2013 11:39:23
El detalle es que en tu pregunta tu dices usando el ciclo for. Es decir la forma que haz solucionado no es la respuesta a tu pregunta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> clear all
A=[1 2 3 0 5 6 7 0 0 8 9 ]
k=1;
for i=1:length(A)
    if A(i)~=0
        B(k)=A(i);
        k=k+1;
    end
end
B
 
A =
 
     1     2     3     0     5     6     7     0     0     8     9
 
 
B =
 
     1     2     3     5     6     7     8     9



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

ayuda

Publicado por alvaro (23 intervenciones) el 04/12/2013 15:28:48
Muchas Gracias!
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

ayuda

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 07/12/2013 11:47:03
Hola Alvaro;

El find esta por demás,


1
2
3
4
5
6
7
8
9
10
11
>> A = floor(5*rand(1,10))
 
A =
 
     4     0     3     3     4     4     0     0     0     4
 
>> B =A(A ~= 0)
 
B =
 
     4     3     3     4     4     4

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
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

ayuda

Publicado por alvaro (23 intervenciones) el 11/12/2013 03:24:26
Gracias!
y si de ese vector, se quisiera crear nuevos vectores sin esos 0, por ejemplo:

A=[4 0 3 3 4 4 0 0 0 4]

separarlo en los vectores
[4]
[3 3 4 4]
[4]
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

ayuda

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 11/12/2013 12:33:24
Alvaro;

En ese caso te sugiero que crees un programa, el algoritmo sería como sigue:

Primero identifica la posición de los ceros y luego separe los elementos del vector T ó A desde la posición 1 hasta la posición del primer cero, y así sucesivamente hasta llegar al final, recuerda colocar una condición que verifique que las diferencias de las posiciones de los ceros sea mayor a 1.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
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