• Martes 21 de Mayo de 2024, 05:40

Autor Tema:  como leer .txt de Matlab  (Leído 17640 veces)

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
como leer .txt de Matlab
« en: Jueves 20 de Noviembre de 2008, 12:30 »
0
Hola,

 he creado unos ficheros en Matlab con fopen y fprintf usando la extension .txt y guardandolos en un directorio creado en work. Si los abro desde el propio Matlab si puedo ver los resultados, pero si intento abrirlos sin mas directamente desde el directorio sin abrir Matlab, me salen "cosas raras", vamos no me sale lo k debería salir, Como podría hacer?

 Muchisimas gracias!!!!

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: como leer .txt de Matlab
« Respuesta #1 en: Lunes 24 de Noviembre de 2008, 18:32 »
0
saludos...

podrias pegar tu codigo para ver que es lo que esta pasando?

Victor Pasilla Campos.
Puebla, México

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Re: como leer .txt de Matlab
« Respuesta #2 en: Martes 25 de Noviembre de 2008, 09:36 »
0
Buenas! Esta es la funcion>

function graba_tabla_desplazamientos (file,tabla_desplazamientos,t,paso_t,calibracion_t,unidad_t,pasox,pasoy,pot,umbral,calibracion_x,calibracion_y,unidad_l,Q)

%Desde otra funcion llamo a esta y le paso un nombre de fichero (file), entonces le añado la extensión .txt y lo abro y cierro como pongo a continuación:

f=fopen(strcat(file,'.txt'),'w+');
fprintf(f,'Nombre fichero: %sn',file);
fprintf(f,'t: %dn',t);
fprintf(f,'paso_t: %dn',paso_t);
fprintf(f,'calibracion_t: %fn',calibracion_t);
fprintf(f,'unidad_t: %sn',unidad_t);
fprintf(f,'pasox: %dn',pasox);
fprintf(f,'pasoy: %dn',pasoy);
fprintf(f,'tamaño_region_2^: %dn',pot);
fprintf(f,'umbral: %fn',umbral);
fprintf(f,'calibracion_x: %fn',calibracion_x);
fprintf(f,'calibracion_y: %fn',calibracion_y);
fprintf(f,'unidad_l: %sn',unidad_l);
fprintf(f, '%sttt%sttt%sttttt%sttttt%sttt%sttt%sn', 'x', 'y', 'dx', 'dy', 'u_dx', 'u_dy', 'nu' );
for fila=1:Q
fprintf(f, '%dttt%dttt%fttt%fttt%ftt%ftt%dn',tabla_desplazamientos(fila,:));
end
fclose(f);
return

Si lo abro desde Matlab no me da problemas, pero si quiero ir a abrirlo directamente en el  directorio donde esta sin abrir Matlab, sale un bloc de notas y no se lee bien.
Muchisimas gracias!

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: como leer .txt de Matlab
« Respuesta #3 en: Martes 25 de Noviembre de 2008, 23:05 »
0
saludos...

mira, creo que el problema es como lee los archivos el bloc de notas, tiene problemas con el salto de linea y de nueva linea
en lugar del caracter de fin de linea coloca otro caracter....por eso se ve mal el archivo...
pero en realidad el archivo esta bien por que si intentas abrirlo con otro programa por ejemplo el wordpad o el word de office el archivo tiene los saltos de linea correctos...
lo que puedes hacer es abrirlo con alguno de estos y guardarlo de nuevo como archivo de texto...


espero te sirva...

Victor Pasilla Campos.
Puebla, México

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Re: como leer .txt de Matlab
« Respuesta #4 en: Domingo 30 de Noviembre de 2008, 18:04 »
0
ok! Pue si, si lo abro de otra forma ya se lee algo, k burra soy! jejej muchas gracias!

Miota85

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: como leer .txt de Matlab
« Respuesta #5 en: Martes 7 de Junio de 2011, 17:37 »
0
La solucion esta en la ayuda de la funcion fopen, del propio matlab. Concretamente en las siguientes lineas:

To open files in text mode, attach the letter 't' to the permission, such as 'rt' or 'wt+'. For better performance, do not use text mode. The following applies on Windows systems, in text mode:

Read operations that encounter a carriage return followed by a newline character ('rn') remove the carriage return from the input.

Write operations insert a carriage return before any newline character in the output.

This additional processing is unnecessary for most cases. All MATLAB import functions, and most text editors (including Microsoft Word and WordPad), recognize both 'rn' and 'n' as newline sequences. However, when you create files for use in Microsoft Notepad, end each line with 'rn'. For an example, see fprintf.

Vamos, que la solucion simplemente es  poner una t. En vez de poner fid=fopen('nombre.txt','w+')  , por ejemplo, poner fid=fopen('nombre.txt','wt+')

Asi el block de notas de windows lo abre bien.