Matlab - Copiar de un fichero de texto a otro con Matlab

   
Vista:

Copiar de un fichero de texto a otro con Matlab

Publicado por klipya (13 intervenciones) el 29/10/2012 10:24:16
Hola!

Tengo una duda. Yo tengo un fichero de texto creado con 4 columnas que es donde tendré que introducir la información. Por otro lado, tengo unos ficheros de textos. Este es mi código hasta el momento (con el for, renombro el fichero para que me quede 'bien' para introducir el dato posteriormente):

clc
clear all % Borro todo el contenido de la consola y los archivos

myPath = 'C:\EXERCICI \'; % carpeta donde se encuentran los archivos
a= dir (fullfile(myPath,'*.zip')); % me selecciona todos los archivos con esta extensión de la carpeta
fileNames = { a.name };

for k = 1:length(fileNames)
newFileName = [fileNames{k}(1:2) fileNames{k}(4:6) '.zip']
movefile([myPath fileNames{k}], [myPath newFileName]);
end

fid = fopen(texto,'r'); %Creación variable que abre el archivo ( para lectura).
guardar = fopen(xtexto, 'w'); % Creas una variable que abre un archivo nuevo (para escritura)

Lo que necesito es que en la primera columna me copie el nombre del fichero y en la segunda, tercera y cuarta unos nombres que están en el fichero de texto. No sé como hacerlo por posición. Es decir, había pensado que quizás podría codificar en Matlab que me copie de la línea 18 la posición 2, 3 y 4, por ejemplo y me lo copie en la columna 2.

¿Como podría hacerlo? ¿Es posible?

Saludos y muchas gracias de antemano! :)
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

Copiar de un fichero de texto a otro con Matlab

Publicado por klipya (13 intervenciones) el 30/10/2012 09:55:28
Hola! al final he conseguido el resultado esperado, pero me gustaría poder conseguir hacer todo este mismo proceso para todos mis archivos de texto y, además, que cuando lo exporte al archivo de 'texto', lo haga linea por linea con cada archivo. ¿Sería posible? Gracias de antemano y saludos!

myPath = 'C:\EX\';
a= dir (fullfile(myPath,'*.DIM'));
fileNames = { a.name };
for k = 1:length(fileNames)
newFileName = [fileNames{k}(1:2) fileNames{k}(4:6) '.txt'];
movefile([myPath fileNames{k}], [myPath newFileName]);
end
fid = fopen('49271.txt', 'r');
for i = 1:18
m = fgetl(fid);
end
result2 = m([12:19]);
fid = fopen('49271.txt', 'r');
for i = 1:30
p = fgetl(fid);
end
result3 = p([12:19]);
fid = fopen('49271.txt', 'r');
for i = 1:31
q = fgetl(fid);
end
result4 = q([12:20]);
fid = fopen('49271.txt', 'r');
for i = 1:19
r = fgetl(fid);
end
result5 = r([12:20]);
load('text.txt');
text= {newFileName, result2, result3, result4, result5}
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

Copiar de un fichero de texto a otro con Matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 02/11/2012 21:03:36
Usa ciclos iterativos, como por ejemplo for o while, con eso lo puedes hacer.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
jjcc94@hotmail.com

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

Copiar de un fichero de texto a otro con Matlab

Publicado por klipya (13 intervenciones) el 04/11/2012 12:24:36
Muchas gracias por tu mensaje Jose. Con el código que tengo ya debería de funcionar no? El problema es que me funciona para un archivo pero no para el resto que tengo en mi carpeta. Me gustaría que cada vez que sacara un resultado, lo escribiera en esta línea de texto con esa estructura, pero solo me lo hace para el primer archivo. Puede que este sea el error de mi código?

load('text.txt');
text= {newFileName, result2, result3, result4, result5}
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