Matlab - Guardar en formato .dat

   
Vista:

Guardar en formato .dat

Publicado por holyo (43 intervenciones) el 17/07/2011 01:51:26
Hola, dentro de un MFILE tengo dos valores que calculo: nombre y tabla. Me gustaría guardar el valor tabla en un archivo que se guardase en mi escritorio y de esta forma: nombre.dat

¿Se puede hacer esto? Muchas gracias a quien me pueda echar una mano. Un saludo.
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

Guardar en formato .dat

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 17/07/2011 09:50:22
hola holyo.
La respuesta es afirmativa.
Si se puede lo que quieres en MATLAB.

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.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

Guardar en formato .dat

Publicado por holyo (43 intervenciones) el 17/07/2011 09:57:05
Muchas gracias por tu respuesta Jose Jeremias, ¿podrías indicarme que comando debo utilizar? No quiero que pierdas el tiempo explicándome todo, sólo necesito una pequeña ayuda para poder empezar.

Muchas gracias y un saludo.
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

Guardar en formato .dat

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 17/07/2011 16:08:07
hola holyo
ESTE ES UN PROGRAMA ELEMENTAL PRA CREAR ARCHIVOS
%===================================
%ESTE PROGRAMA CREA UN ARCHIVO.ext
clear all
names=input('Ingrese el nombre del archivo:','s');
A=input('Ingrese la matriz aleatoria A=');
[fid, texto]=fopen(names,'w');
fprintf(fid,'CREANDO EL ARCHIVO %s\n',names);
[n,m]=size(A);
for i=1:n
for j=1:m
fprintf(fid,'%8.4f\t',A(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);
type(names)
%===================================

EJECUCION
%==============================
>> creandoarchivos
Ingrese el nombre del archivo:caballero1.dat
Ingrese la matriz aleatoria A=rand(3,5)

CREANDO EL ARCHIVO caballero1.dat
0.8147 0.9134 0.2785 0.9649 0.9572
0.9058 0.6324 0.5469 0.1576 0.4854
0.1270 0.0975 0.9575 0.9706 0.8003
%===============================================
el archivo caballero1.dat ha sido creado en la misma ruta donde esta activo matlab.


AQUI OTRO PROGRAMA UN POCO MAS COMPLETO PARA CREAR ARCHIVOS.
%===================================
%ESTE PROGRAMA CREA UN ARCHIVO.ext
clear all;
fprintf('POR EJEMPLO\n');
fprintf('D:\\MATLABCABALLERO\\AYUDAS\\caballero1.dat\n');
fprintf('C:\\Documents and Settings\\JEREMIAS\\Escritorio\\caballero1.tex\n');
names=input('Ingrese la ruta y el nombre del archivo a crear:','s');
A=input('Ingrese la matriz aleatoria A=');
fid=fopen(names,'w');
B=find(names=='\');
nombre_archivo=names(B(end)+1:end);
ruta=names(1:B(end)-1);
fprintf(fid,'CREANDO EL ARCHIVO: %s\nEN %s\n\n',nombre_archivo,ruta);
[n,m]=size(A);
nombres={'JOSE';'JULIO';'EDITH';'MARIA';'LUIS';'PEDRO';'JUAN';'MONICA'};
apellidos={'RAMIREZ';'CABALLERO';'MARTINEZ';'MAMANI';'ALCAZAR';'CUTIMANCO';'SOLANO';'YAURI'}';
[n1,m1]=size(nombres);
for i=1:n
%nombres=char((10*rand(1,5)+67)); %GENERA NOMBRES
fprintf(fid,'%s\t%s',cell2mat(nombres(round((n1-1)*rand+1))),...
cell2mat(apellidos(round((n1-1)*rand+1))));
for j=1:m
fprintf(fid,'\t%11.5f\t',A(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);
type(names)
%D:\MATLABCABALLERO\AYUDAS\caballero1.dat
%C:\Documents and Settings\JEREMIAS\Escritorio\caballero1.dat
%==================================================

EJECUCION
%============================================
>> creandoarchivos1
POR EJEMPLO
D:\MATLABCABALLERO\AYUDAS\caballero1.dat
C:\Documents and Settings\JEREMIAS\Escritorio\caballero1.tex
Ingrese la ruta y el nombre del archivo a crear:C:\Documents and Settings\JEREMIAS\Escritorio\caballero1.tex
Ingrese la matriz aleatoria A=rand(5,3)

CREANDO EL ARCHIVO: caballero1.tex
EN C:\Documents and Settings\JEREMIAS\Escritorio

LUIS CUTIMANCO 0.64631 0.65510 0.34039
JUAN YAURI 0.70936 0.16261 0.58527
LUIS CABALLERO 0.75469 0.11900 0.22381
JULIO MARTINEZ 0.27603 0.49836 0.75127
JUAN MARTINEZ 0.67970 0.95974 0.25510
%================================================================

OTRA EJECUCION.

>> creandoarchivos1
POR EJEMPLO
D:\MATLABCABALLERO\AYUDAS\caballero1.dat
C:\Documents and Settings\JEREMIAS\Escritorio\caballero1.tex
Ingrese la ruta y el nombre del archivo a crear:C:\Documents and Settings\JEREMIAS\Escritorio\caballero2.dat
Ingrese la matriz aleatoria A=rand(7,4)

CREANDO EL ARCHIVO: caballero2.dat
EN C:\Documents and Settings\JEREMIAS\Escritorio

PEDRO CUTIMANCO 0.23995 0.33772 0.40391 0.23478
MARIA ALCAZAR 0.41727 0.90005 0.09645 0.35316
EDITH CUTIMANCO 0.04965 0.36925 0.13197 0.82119
JULIO CUTIMANCO 0.90272 0.11120 0.94205 0.01540
JULIO MAMANI 0.94479 0.78025 0.95613 0.04302
LUIS CUTIMANCO 0.49086 0.38974 0.57521 0.16899
JULIO YAURI 0.48925 0.24169 0.05978 0.64912

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.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

Guardar en formato .dat

Publicado por holyo (43 intervenciones) el 27/07/2011 21:17:52
Muchas gracias por tu ayuda Jose Jeremias, te quiero preguntar una cosa, ¿hay alguna forma de que se guarde automáticamente en el escritorio sin tener que tú poner el acceso a esa ruta?

He probado con esto:

nombre_1=input('Indique el nombre del archivo','s')

nombre==C:\\Usuarios\Juan\Escritorio\nombre_1

Pero me da error porque matlab no detecta o tiene problemas con la barra inclinada \.

Un saludo y gracias por tu ayuda.
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

Guardar en formato .dat

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 31/07/2011 17:26:00
Hola Holyo.
Tu pregunta es muy particular.
Pero si se puede hacer. Aqui te mando un avance. NO le he ejecutado porq estoy en maquina que hay internet. Mejoralo y vuelves a pegar en el foro.

names=input('Ingrese la ruta y el nombre del archivo a crear:','s');
Ruta='C:\Documents and Settings\JEREMIAS\Escritorio\';
A=input('Ingrese la matriz aleatoria A=');
fid=fopen([Ruta,names],'w');
for j=1:m
fprintf(fid,'\t%11.5f\t',A(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.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

Guardar en formato .dat

Publicado por Juan (43 intervenciones) el 02/08/2011 18:53:57
Hola José Jeremias, estuve modificando el programa, pero en todas mis correcciones he tenido el mismo problema, me sale un problema con el comando fprintf. Te dejo escrito el programilla que yo estoy haciendo:

clear all
Ruta='C:\Usuarios\Xenxo\Escritorio\';
nombre_archivo=input('Indique el nombre del arhivo añadiendo su formato(ejemplo.dat): ','s');
X=[ 0 0.5 0.75 1];
Y=[ 0 1 2 3];
A=[X' Y'];
[n,m]=size(A);
nombre_del_archivo=[Ruta nombre_archivo]
fid=fopen(nombre_del_archivo,'wt');
% Crea un archivo en esa ruta y con ese nombre
for i=1:n
for j=1:m
fprintf(fid,'%8.4f\t',A(i,j));------------------------>AQUÍ ES DONDE ME DICE QUE HAY UN ERROR
end
fprintf(fid,'\n');
end
fclose(fid);
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

Guardar en formato .dat

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 02/08/2011 20:03:04
Hola Juan o Holyo

%====================================
clear all;
Ruta='C:\Documents and Settings\JEREMIAS\Escritorio\';
nombre_archivo=input('Indique el nombre del arhivo añadiendo su formato(caballero.dat): ','s');
X=[ 0 0.5 0.75 1];
Y=[ 0 1 2 3];
A=[X' Y'];
[n,m]=size(A);
Nombre_del_archivo=[Ruta nombre_archivo];
fid=fopen(Nombre_del_archivo,'w');
% Crea un archivo en esa ruta y con ese nombre
for i=1:n
for j=1:m
fprintf(fid,'%8.4f\t',A(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);
type(Nombre_del_archivo)
%===================================


EJECUCION
>> guardararchivos
Indique el nombre del arhivo añadiendo su formato(caballero.dat): caballero.dat

0.0000 0.0000
0.5000 1.0000
0.7500 2.0000
1.0000 3.0000

LO DE ARRIBA ES UN PROGRAMA MUY BASICO.


tambien puedes hacer el mismo programa a un nivel INTERMEDIO utilizando el comando :
[filename,pathname]=uiputfile({'*.*},'Guardar Como');
pero SIN GUIDE DE MATLAB

Tambien puedes hacer el mismo programa a un nivel AVANZADO utilizando el comando :
[filename,pathname]=uiputfile({'*.*'},'Guardar Como');
pero USANDO GUIDE DE MATLAB.


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.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

Guardar en formato .dat

Publicado por holyo (43 intervenciones) el 03/08/2011 21:07:47
Hola Jose Jeremias, como siempre te quiero dar las gracias por toda la ayuda que me prestas. El programa que has escrito arriba (el que consideras básico y tienes toda la razón), me sigue dando error, me aparece lo siguiente:

??? Error using ==> fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.

Error in ==> ton1 at 13
fprintf(fid,'%8.4f\t',A(i,j));

No sé si será por el tipo de matlab, el mío es el 7.5 o R2007b.

He investigado lo de uitputfile, pero después de haberme leído la ayuda y haber probado diferentes cosas, tengo una duda que quizás te parezca estúpida. ¿En dónde se escribe lo de uitputfile? ¿En la última línea de código después del programa de arriba de todo?

Si utilizo uitpufile supongo que no debo utilizar el comando fid=fopen(nombre archivo, w) porque me creará un archivo con ese nombre en la carpeta del matlab. Pero si no puedo utilizar ese comando, ¿cómo hago para crear un archivo con la información que le doy de la matriz A?

No sé si me he explicado bien, intentaré investigar un poquito más el tema pero quizás tu me resuelvas esas dudas "estúpidas" que tengo. Un abrazo y gracias por toda tu ayuda.
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