Programación Específica => Matlab => Mensaje iniciado por: saweso en Martes 19 de Mayo de 2009, 14:51
Título: importar VARIOS .txt en MATLAB
Publicado por: saweso en Martes 19 de Mayo de 2009, 14:51
Tengo un problemilla, y es que tengo 18 archivos .txt con diferentes columnas de datos que necesito meter en vectores de matlab. Esta cuestión ya está resuelta para 1 archivo. Por ejemplo, la llamada es:
Tengo 18 archivos que distan del que he puesto en el numero en negrita. Quiero saber como podría hacer para, usando un bucle "for" de variable, por ejemplo k, en plan (for K=1:18) para ir llamando a todos los archivos uno tras otro.
Se os ocurre algo?
Muchas gracias. PD: ¿hay algun comando que lea TODOS los ficheros .txt de una carpeta?
Título: Re: importar VARIOS .txt en MATLAB
Publicado por: Geo en Martes 19 de Mayo de 2009, 22:14
Lo más fácil sería que los nombres de archivo fueran algo como nombre_X.txt, donde X es un número consecutivo:
Título: Re: importar VARIOS .txt en MATLAB
Publicado por: IngAguas en Viernes 12 de Junio de 2009, 12:14
Aprovechando este tema, a mi me pasa algo parecido. Tengo 42 archivos que necesito importar que no son extension txt (es mas, desconozco su extension :D ), pues con parte de la informacion que continene necesito armar 42 matrices en 42 archivos diferentes. El procedimiento que hice para solo 1 archivo es:
archivo= input('Archivo de entrada:','s');% ingreso el archivo a leer fid1= fopen(archivo); datos= fscanf(fid1,'%f ',[1 inf]);%leo la informacion q contiene datos(1:2)=[]; %elimino las 2 primeras columnas por q no las necesito datos(211:1470)=[];% elimino estas columnas porque no las necesito CAPA1=[datos;datos;datos;datos;datos;datos;datos]; % armo una matriz que es de 7x210 datos, los cuales por fila resultan ser los mismos CAPA=CAPA1'; %calcula la inversa B1='MATRIZK'; lista=strcat(B1,'.txt');% creo el nombre del archivo para que grabe en el D1_1=strcat('C:Documents and SettingsMis documentosMatlab',lista); % le direcciono donde crearlo fid2=fopen(D1_1,'W') % lo abro para escribir en el fprintf(fid2,'%0.10f .....%10fn',CAPA);% ingreso la matriz formada st=fclose(fid1) st=fclose(fid2)
como veran, asi introduzco solo un archivo a la vez y siempre el archivo de salida es el mismo, porlo q tengo q modificar el nombre cada vez q camibo el archivo, quiero usar un bucle FOR, pero no se como manejarlo, pues he hecho varias pruebas y no logro hacerlo. ^_^ . Si alguien me da una luz os agradezco un monton!!!!
Gracias por la ayuda!!! :rolleyes:
Título: Re: importar VARIOS .txt en MATLAB
Publicado por: Geo en Sábado 13 de Junio de 2009, 05:12
¿Qué tipo de modificación debes hacerle al nombre del archivo en cada iteración? Si se trata de una numeración consecutiva el ciclo for es lo adecuado, en mi anterir mensaje tienes la solución: