Matlab - Extraer datos de un txt para guardar en vectores

   
Vista:
Imágen de perfil de Feli

Extraer datos de un txt para guardar en vectores

Publicado por Feli (10 intervenciones) el 19/03/2014 12:15:56
Hola a todos,

tengo el siguiente txt


0:0:1,12.65,65,
0:0:2,12.62,62,
0:0:3,12.62,62,
0:0:4,12.65,65,
0:0:5,12.62,62,
0:0:6,12.62,62,
0:0:7,12.65,65,
0:0:8,12.68,68,
0:0:9,12.65,65,
0:0:10,12.62,62,
0:0:11,12.14,14,
0:0:12,11.43,43,
0:0:13,8.52,2,
0:0:14,6.40,0,
0:0:15,7.84,4,


os pongo un ejemplo con la primera linea

hora: 0:0:1
v = 12.65
i=65

me gustaría crea dos vectores en matlab, uno que contenga todos los valores de v y otro que contenga todos los valores de i, la hora en principio la descartaría

es posible?
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 Feli

Extraer datos de un txt para guardar en vectores

Publicado por Feli (10 intervenciones) el 19/03/2014 20:59:24
he conseguido hacerlo quitando la hora que me daba problemas y usando "load"

ahora tengo una matriz con la que he podido trabajar de la forma que quería y me surge una duda totalmente distinta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
V=[];
for i=1 : length (prueba2(:,1))
    V(i) = prueba2 (i,1);
end
 
I1=[];
for i=1 : length (prueba2(:,2))
    I1(i) = prueba2 (i,2);
end
 
I2=[];
for i=1 : length (prueba2(:,3))
    I2(i) = prueba2 (i,3);
end

y funciona todo como a mi me gustaría, pero quiero ir un paso más allá y crear una función en la que solo sea necesario meter el nombre del fichero y ya el programa haga el resto, de momento tengo esto.

1
fichero=input('Ingrese una cadena: ','s')

pongo el nombre de prueba2.txt

1
load (fichero)

y en estos momentos tengo el fichero "pruebas2" cargado en matlab como quería

pero no se como hacer los for que puse anteriormente, es decir que tengo que poner en lugar de "prueba2"
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

Extraer datos de un txt para guardar en vectores

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3428 intervenciones) el 20/03/2014 00:26:06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clear all
prueba2=[0:0:1,12.65,65,
0:0:2,12.62,62,
0:0:3,12.62,62,
0:0:4,12.65,65,
0:0:5,12.62,62,
0:0:6,12.62,62,
0:0:7,12.65,65,
0:0:8,12.68,68,
0:0:9,12.65,65,
0:0:10,12.62,62,
0:0:11,12.14,14,
0:0:12,11.43,43,
0:0:13,8.52,2,
0:0:14,6.40,0,
0:0:15,7.84,4,];
save('archivos.mat','prueba2');
archivo=input('Ingrese el nombre del fichero *.mat :','s');
load(archivo);
V= prueba2(:,1)
I1=prueba2(:,2)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
>> hora_valores_datos
Ingrese el nombre del fichero *.mat :prueba2.mat
 
V =
 
   12.6500
   12.6200
   12.6200
   12.6500
   12.6200
   12.6200
   12.6500
   12.6800
   12.6500
   12.6200
   12.1400
   11.4300
    8.5200
    6.4000
    7.8400
 
 
I1 =
 
    65
    62
    62
    65
    62
    62
    65
    68
    65
    62
    14
    43
     2
     0
     4



Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


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
0
Comentar
Imágen de perfil de Jorge De Los Santos

Extraer datos de un txt para guardar en vectores

Publicado por Jorge De Los Santos (212 intervenciones) el 20/03/2014 00:42:28
Hola Feli.

Una manera de implementar una función para tu caso sería la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function importarDatos(archivo)
% Importar datos -> Ej:  >>importarDatos('datos.txt');
%
A=importdata(archivo);
Hora=A.textdata;
V=A.data(:,1);
I=A.data(:,2);
 
% Resto del código (Gráficas de ejemplo)
subplot(2,1,1);
plot(V);
set(gca,'Xtick',1:length(Hora),'XtickLabel',Hora);
subplot(2,1,2);
plot(I);
set(gca,'Xtick',1:length(Hora),'XtickLabel',Hora);
 
end


Evidentemente lo anterior sólo es útil para vuestro caso, y habrás de pasarle como argumento el nombre del fichero o la ruta completa en que este se encuentra. Con "importdata" puedes cargar un fichero de datos que contenga cadenas de texto y valores numéricos a la vez. Lo que hay después de "Resto de código" es simplemente a manera de ejemplo de cómo utilizar los datos importados, lo cual claramente puedes sustituir por la utilidad que vayas a darle a esos datos.

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