Matlab - Duda con ficheros en matlab

   
Vista:

Duda con ficheros en matlab

Publicado por Luis (10 intervenciones) el 06/02/2013 10:38:56
Hola, tengo la siguiente duda: quiero guardar en un fichero un vector, pero quiero que el nombre del fichero lo introduzca el usuario, es decir que no sea siempre el mismo nombre del fichero.
Os pongo lo que he programado en mi programa:
fichero=fopen('medidas.txt','w+');
fprintf(fichero,'%f\b',tension); %guardo en el fichero el contenido del vector tensión.
fclose(fichero);

De esta manera siempre estoy guardando el vector tensión en el mismo fichero, y lo que quiero es que sea el usuario quien introduzca el nombre del fichero y en función de ese nombre abrir un fichero con ese nombre.
Había pensado lo siguiente:
nombre=inputdlg('Introduzca el nombre del fichero:','Fichero');
%de esta manera estoy guardando una cadena de caracteres con el nombre del fichero en la variable string nombre.

Pero ahora viene mi problema y es que no sé como pasarle a la función fopen lo que hay dentro de la cadena nombre(que es el nombre del fichero).
Ya que si pongo el siguiente comando en Matlab:fopen(nombre,'w+') Me da el siguiente error:
??? Error using ==> fopen
Invalid filename.

¿Sabéis cómo lo puedo hacer?

Tengo otra duda y es que quiero crear bases de datos utilizando matlab pero no tengo ni idea de como hacerlo, por si me podéis recomendar alguna página o darme algún consejo.

Muchas gracias y 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

Duda con ficheros en matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 06/02/2013 19:27:42
1
2
3
4
5
6
clear all
 nombre=input('Introduzca el nombre del fichero:','s');
 tension=rand(1);
 fid=fopen([nombre,'.txt'],'w+');
 fprintf(fid,'%f',tension);
 fclose(fid);



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1368408-COMO_HACER_SUS_PREGUTNAS_DE_MATLAB.html
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

Duda con ficheros en matlab

Publicado por Luis (10 intervenciones) el 07/02/2013 11:27:06
Hola Jose Jeremias, muchísimas gracias por tu aporte. De esta forma sí funciona pero es que estoy trabajando con GUIDE (la interfaz gráfica de matlab) y lo que quiero es que cuando le dé a un boton de la interfaz llamado Guardar en un fichero me salga un mensaje en la pantalla, por eso utilizo el comando 'inputdlg'.
Haciendo lo mismo pero con inputdlg no funciona:
nombre=inputdlg('Introduzca el nombre del fichero:');
fid=fopen(nombre,'w+');
No funciona, me sale el siguiente error:
??? Error using ==> fopen
Invalid filename.

Yo creo que es porque cuando lo haces de la manera en que me has comentado tu Jose Jeremias, estas guardando el nombre del fichero en una variable de tipo string, sin embargo cuando lo hago de esta manera estoy guardando el nombre del fichero en un array de tipo cadena en la posicion (1,1).
He probado poniendo fid=fopen(nombre(1,1) y me sale el mismo error así que no sé como hacerlo.
Si hago lo siguiente: nombre=input('Introduzca el nombre del fichero:','s');
nombre1=inputdlg('Introduzca el nombre del fichero:');
En el workspace me salen las 2 variables, pero en la columna value en la fila correspondiente de la variable nombre pone por ejemplo 'prueba.txt' y en la de la variable nombre1 pone <1x1 cell>.


No sé como hacer para poder hacerlo con inputdlg ya que estoy trabajando con interfaces gráficas.
Un saludo y muchas gracias Jose. A ver si consigues solucionarme el problema. Gracias de nuevo
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

Duda con ficheros en matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 07/02/2013 14:09:28
El programa que te he hecho es correcto.
En ningún momento en tu pregunta que haz hecho me dices que estas haciendo en guide.
Por eso justamente los usuarios deben hacer bien claro sus preguntas.
Y siempre incido en eso, traten de hacer bien claro sus preguntas.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1368408-COMO_HACER_SUS_PREGUTNAS_DE_MATLAB.html
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

Duda con ficheros en matlab

Publicado por Luis (10 intervenciones) el 07/02/2013 17:01:49
Sí Jose Jeremías estoy de acuerdo contigo, el fallo es mío ya que no te he dicho en ningun momento que estaba haciendo un GUIDE pensando que se hacía igual. Lo siento.

El código que has hecho es correcto, en ningún momento he dicho que fuera incorrecto. De hecho lo he dejado dentro de mi GUIDE así como me lo has dicho.

Muchas gracias de nuevo y lo siento.
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

Duda con ficheros en matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 08/02/2013 01:01:44
1
2
3
4
5
6
7
8
clc
clear all
prompt={'Ingres nombre del archivo sin la extension:'};
nombre=inputdlg(prompt);
tension=rand(1);
fid=fopen([cell2mat(nombre),'.txt'],'w+');
fprintf(fid,'%f',tension);
fclose(fid);


1
>> inputdlg1



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1368408-COMO_HACER_SUS_PREGUTNAS_DE_MATLAB.html
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