Matlab - Leer/Guardar archivos .txt .dat

 
Vista:

Leer/Guardar archivos .txt .dat

Publicado por Bribon (7 intervenciones) el 12/03/2012 19:02:58
Hola, espero explicar mis dudas de la manera más clara posible:

- A la hora de leer un archivo .txt o .dat--> se recomienda utilizar comandos como importdata , uigetfile o load. El problema que me encuentro con estas herramientas es que tengo que indicar en dónde se encuentra mi archivo.

¿Se puede utilizar otro comando en el que él mismo busque el archivo?

- Cuando quiero utilizar el comando uigetfile:

[archivo,ruta]=uigetfile('*.dat','ABRIR ARCHIVO');

En la pantalla me aparecen los archivos que se encuentran dentro de la carpeta en la que estoy trabajando, ¿podría abrirse en el escritorio?.

Espero que esté bien explicado las cosas, quien me pueda ayuda o explicar...se lo agradecería enormemente.
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leer/Guardar archivos .txt .dat

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 12/03/2012 20:12:23
Hola Bribon.
Esto es una sugerencia, aun no siempre doy sugerencias.
Casi siempre hago codigos. Pero algo parecido a lo quieres ya hecho unos semanas atras, por eso te digo, que se puede hacer.

puedes utilizar: ls ó dir y un bluce for y comparacion de cadenas, para lo q quieres.


Saludos
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
[email protected]


http://matlabcaballero.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

Leer/Guardar archivos .txt .dat

Publicado por Bribon (7 intervenciones) el 12/03/2012 21:38:54
Muchas gracias Jose Jeremías por responderme. Te quiero comentar lo siguiente, entiendo más o menos lo que se puede hacer, espero que sea más o menos así:

Nombre archivo

BUCLE FOR: -----> Tengo que ir carpeta por carpeta (de todas las que existen en el ordenador)

En esta carpeta---> utilizo ls, de esta manera comparo cada archivo de la carpeta con el Nombre archivo.

END

¿Puede ser algo parecido?
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
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leer/Guardar archivos .txt .dat

Publicado por Dave (1094 intervenciones) el 12/03/2012 20:33:52
Hola Bribon;

En tu caso, si es posible implementar lo que deseas hacer. Te sugiero que utilices la siguiente secuencia:
1) Implementes una función para ingresar a una carpeta o directorio y determinar que tipo de contenido existe, si hubiera carpetas seguiría ingresando a cada una ellas en forma secuencial hasta encontrar archivos *.dat.
2) Implementar una función para determinar o encontrar archivos *.dat por cada carpeta. (si es que existen o no archivos *.dat.)
3) Si lo estas haciendo en una GUI, debes programar un botom u otro tipo de control para que use las funciones 1) y 2).

A continuación te dejo los códigos de los ítems anteriores:

1) función para ingresar a una carpeta o directorio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function N=load_carpetas(PathDir,listar,hObject,handles)
 
dir_struct = dir([PathDir]);
file_names=[];
cnt=1;
for n=1:length(dir_struct)
    if or(dir_struct(n,1).isdir==0,or(strcmp(dir_struct(n,1).name,'.'),...
            strcmp(dir_struct(n,1).name,'..')))
        else
        file_names{cnt,1}=dir_struct(n,1).name;
        cnt=cnt+1;
    end
end
set(listar,'String',file_names);
N=cnt-1;



2) función para determinar o encontrar archivos *.dat
1
2
3
4
5
6
7
8
function N=load_archivos(PathDir,listar,hObject,handles)
 
file_names=[];      sorted_index=[];
dir_struct = dir([PathDir,'/*.dat']);
[file_names,sorted_index] = sortrows({dir_struct.name}');
set(listar,'String',file_names);

N=length(file_names);


Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
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

Leer/Guardar archivos .txt .dat

Publicado por Bribon (7 intervenciones) el 12/03/2012 21:41:46
Muchas gracias Dave Correa por haberme dado una solución, la cuestión es que en la función 1 tienes que introducir un PathDir, que supongo que será el nombre de la carpeta en la que quiero buscar (por ejemplo, he puesto C:).

Me sale un error con "listar"--> ¿qué es lo que tengo que hacer?

Gracias por el tiempo que has gastado conmigo.
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
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leer/Guardar archivos .txt .dat

Publicado por Dave (1094 intervenciones) el 12/03/2012 21:48:39
Hola Bribon;

De hecho que tienes que pasarle la ruta del directorio, te alcanzo un ejemplo:

1
2
3
4
5
PathDir=[PathServer,filename_user,'\indexado\',filename_var,'\',filename_est];
 
listar=handles.list_file;
 
N=load_archivos(PathDir,listar,hObject,handles);


Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
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

Leer/Guardar archivos .txt .dat

Publicado por Bribon (7 intervenciones) el 12/03/2012 23:29:18
Hola Dave Correa, siento molestarte otra vez pero es que me sigue dando problemas el comando "listar". Aquí te pego el archivo.m:

filename_est='puntos.dat';
PathDir=[PathServer,filename_user,'\indexado\',filename_var,'\',filename_est];


function N=load_carpetas(PathDir,listar,hObject,handles);
dir_struct = dir([PathDir]);
file_names=[];
cnt=1;
for n=1:length(dir_struct)
if or(dir_struct(n,1).isdir==0,or(strcmp(dir_struct(n,1).name,'.'),strcmp(dir_struct(n,1).name,'..')))
else
file_names{cnt,1}=dir_struct(n,1).name;
cnt=cnt+1;
end
end
listar=handles.list_file;
set(listar,'String',file_names);
N=cnt-1;


function N=load_archivos(PathDir,listar,hObject,handles);
file_names=[];
sorted_index=[];
dir_struct = dir([PathDir,'/*.dat']);
[file_names,sorted_index] = sortrows({dir_struct.name}');
set(listar,'String',file_names);
N=length(file_names);


¿Qué es lo que tengo mal? Gracias por tu ayuda Dave, es impagable lo que haces.
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leer/Guardar archivos .txt .dat

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/03/2012 15:13:48
Hola Bribon.
Lo que dice David, es cierto.
Hacer una asesoria de un programa que se está haciendo a nivel de guide, no es tan simple.
Es por esa razon, casi siempre yo pido los usuarios envien sus codigos guide a mi correo para verlo y poder filtrarle sus errores y encima para ganar tiempo.
Aunque muchos usuarios derrepente pensaran que yo me voy a quedar con sus codigos de guide jajaja . Casi al 99% de las usuarios le he reenviado sus guides arreglados a sus correos o lo he copiado a este medio del foro.
El 1% de no lo he contestado, porque simplemente no lo he podido arreglar, o simplemente el usuario no brindo la informacion suficiente.

Aunque no creas,cuando vi tu pregutna, lo queria era pedirte que me envies tu codigo guide a mi correo. Pero despues me abstuve y solo me limité darte una sugerencia. Ya que estaba ocupado en otro proyecto que estaba haciendo y aun sigo haciendo.

Ademas las persona que contestamos en el foro, las preguntas de matlab, somos algo serio y no tomamos las preguntas a la lijera. Y eso lo puedes constatar con la cantidad de preguntas que he hemos contestado acerca de matlab.


Saludos
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
[email protected]

http://matlabcaballero.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