Matlab - importar datos .txt

 
Vista:
Imágen de perfil de Nicolás Moris

importar datos .txt

Publicado por Nicolás Moris (5 intervenciones) el 11/06/2014 17:21:38
Saludos, tengo un archivo .txt el cual se compone de filas con los siguientes valores

ej de fila:

110001+00000125

Necesito que matlab me lea la anterior fila pero de manera que quede:
1er variable: los primeros dos dígitos
2da variable: del tercer al quinto dígito
3er variable: del séptimo al ultimo dígito

ej:
var1: 11
var2: 0001 --> 1
var3: 00000125 --> 125

Hace un tiempo utilizaba la opción importdata, pero ahora quiero hacer un programa por lo cual necesito que matlab me pida el nombre del archivo .txt y que lo lea fila por fila a medida que lo voy pidiendo...

Si no explique muy bien lo que me necesito saber, díganlo
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 Jorge De Los Santos
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

importar datos .txt

Publicado por Jorge De Los Santos (213 intervenciones) el 13/06/2014 06:15:59
Hola Nicolás...

Una forma de hacerlo sería escribiendo una función que tenga como argumentos de entrada el nombre del archivo y el número de la línea que quieres leer, y como argumentos de salida tus variables var1, var2, var3. Te adjunto un ejemplo de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
function [v1,v2,v3]=leerDatos(archivo,linea)
X=importdata(archivo);
if linea>length(X)
    error('Línea fuera de rango');
else
    v1=str2double(X{linea}(1:2));
    v2=str2double(X{linea}(3:6));
    v3=str2double(X{linea}(7:end));
end
end


La manera de llamar la función sería la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> [var1,var2,var3]=leerDatos('datos.txt',1)
 
var1 =
 
    11
 
 
var2 =
 
     1
 
 
var3 =
 
   125


Con lo anterior leerías la primera línea del archivo "datos.txt".


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
Imágen de perfil de Nicolás Moris

importar datos .txt

Publicado por Nicolás Moris (5 intervenciones) el 13/06/2014 18:20:42
Muchas gracias, por ahora probé el comando y veo que funciona con éxito, ya cuando adelante el programa veré como funciona...
Te repito gracias, estuve buscando la forma desde hace tiempo.
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 Nicolás Moris

importar datos .txt

Publicado por Nicolás Moris (5 intervenciones) el 14/06/2014 05:22:32
Bueno, este planteo es solo si es posible,
El archivo puede contener miles de filas. ¿es posible que el programa vaya importando de a una fila elegida?
Si no, ¿Puede generar algún problema el tener cargada la matriz de mas o menos, 10x10.000?
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 Nicolás Moris

importar datos .txt

Publicado por Nicolás Moris (5 intervenciones) el 14/06/2014 06:09:43
Olvide una cosa, si quiero en vez de un numero sacar texto, ¿Que iría en el lugar de str2double?
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
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

importar datos .txt

Publicado por Jorge De Los Santos (213 intervenciones) el 14/06/2014 07:16:24
Hola Nicolás.

Posiblemente la memoria sea un poco más exigida al tratar con un volumen mayor de datos. Puedes utilizar "dlmread" en lugar de "importdata", dado que te permite seleccionar un rango de valores a importar.


* Si vas a importar texto elimina el "str2double"

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