Yo tengo un gran archivo de texto que contiene los datos que necesita ser extraído y se inserta en un nuevo archivo de texto. Yo posiblemente necesidad de almacenar estos datos en una celda de matriz/array ?

Pero por ahora, la cuestión es que estoy tratando de poner a prueba un conjunto de datos más pequeño, para comprobar si el código de abajo funciona.

Tengo un código en el que se abre un archivo de texto, explora a través de ella y replica los datos y los guarda en otro archivo de texto llamado «output.txt».

Problema : no parece guardar el archivo correctamente. Sólo se muestra una matriz vacía en el archivo de texto, como el de este " [] ". El texto original de archivo sólo contiene la cadena de caracteres.

%opens the text file and checks it line by line.
fid1 = fopen('sample.txt');
tline = fgetl(fid1);
while ischar(tline)
    disp(tline);
    tline = fgetl(fid1);
end
fclose(fid1);


% save the sample.txt file to a new text fie
fid = fopen('output.txt', 'w');
fprintf(fid, '%s %s\n', fid1);
fclose(fid);

% view the contents of the file
type exp.txt

¿Dónde puedo ir desde aquí ?

  • ¿Qué OS ? 32 o 64 bits? Esta página es útil. Ir al aumentar la swap parte mathworks.com/support/tech-notes/1100/1106.html
  • Es un sistema de 64 bits y lo configuro tamaño del archivo de paginación para ser, de tamaño personalizado, tamaño administrado por el sistema, o sin archivo de paginación?
  • por favor, presente con los pasos que hice. ¿Escribir algo de código para abrir archivos de texto, o utiliza el editor para abrir el archivo de texto ?
  • He actualizado mi pregunta con el código que he utilizado.
  • Tienes que aumentar el tamaño, para ello tiene que ser de tamaño personalizado para aumentar el valor predeterminado. Esto no debería ser un problema en una máquina de 64 bits si usted tiene una buena cantidad de ram. Así que me gustaría responder a la pregunta pavans
  • Trate de usar la función fopen. Lectura de todos los datos con que y, a continuación, realice su manipulación. A continuación, borrar de la memoria usando el claro.
  • He presentado el código en mi pregunta y me han llamado de la función en la ventana de comandos.

InformationsquelleAutor Jeiman | 2011-12-31

2 Comentarios

  1. 5

    No es una buena práctica para leer un archivo de entrada de la carga de todos los de su contenido a la memoria a la vez. De esta manera el tamaño de archivo que es capaz de leer está limitado por la cantidad de memoria en la máquina (o la cantidad de memoria que el sistema operativo está dispuesto a asignar a un único proceso).

    Lugar, usar fopen y su función relacionada con el fin de leer el archivo línea por línea o char a char.

    Por ejemplo,

    fid1 = fopen('sample.txt', 'r');
    fid = fopen('output.txt', 'w');
    
    tline = fgetl(fid1);
    while ischar(tline)
        fprintf(fid, '%s\n', tline);
        tline = fgetl(fid1);    
    end
    
    fclose(fid1);
    fclose(fid);
    
    type output.txt

    Por supuesto, si usted sabe de antemano que el archivo de entrada es que nunca va a ser grande, se puede leer todos a la vez, utilizando por textread o algún equivalente de la función.

    • Necesito una función para abrir el archivo y, a continuación, a partir de allí la llaman en la ventana de comandos ? Si es así, ¿cómo iba yo a llamar a la función en el m archivo? Gracias
    • Te sugiero que te voy a escribir todo el código en un m-archivo y llamar a sólo desde la línea de comandos. Por lo tanto, el m-archivo debe incluir un código similar a lo que me dio en el ejemplo, con la adición de otro fopen para el archivo de salida y la lógica de la escritura en el interior del bucle.
    • Básicamente, quiero abrir un archivo, guárdelo en una celda o en la matriz de la matriz. A partir de ahí, me gustaría manipular los datos como yo necesito. A continuación, guarde para manipular datos en otro archivo de texto. ¿Cómo puedo hacerlo ?
    • ¿Su archivo de ajuste en la memoria?
    • sí, así es. He utilizado el código de arriba y en la ventana de comandos. Tomó cerca de 5 minutos para que todos se parecen porque me estoy tratando con un gran número de caracteres en los archivos.
    • He actualizado mi pregunta. Por favor, compruebe y vea a dónde voy mal en el código. Gracias.
    • He actualizado mi respuesta, compruebe si funciona para usted.
    • sí funciona. Muchas gracias. 🙂

  2. 2

    Trate de usar textread, lee datos de un archivo de texto y lo almacena como una matriz o una matriz de Células. Al final del día, supongo que usted quisiera que los datos a ser almacenados en una variable a manipular como necesario. Una vez que haya terminado la manipulación, abrir un archivo con fopen y uso fprintf para escribir datos en el formato que usted desee.

    • Básicamente, quiero abrir un archivo, guárdelo en una celda o en la matriz de la matriz. A partir de ahí, me gustaría manipular los datos como yo necesito. A continuación, guarde para manipular datos en otro archivo de texto. ¿Cómo puedo hacerlo ?

Dejar respuesta

Please enter your comment!
Please enter your name here