Matlab - renombra variables

 
Vista:

renombra variables

Publicado por dani (10 intervenciones) el 06/11/2012 14:07:59
hola,
estoy buscando la forma de renombrar una variable.
en concreto estoy realizando un programa donde cada vez voy a tener una variable pero siempre con nombre similar, ejemplo M_20111025_0

donde M_ es fijo, 2011 es el año, 10 el mes, 25 dia ,_ es fijo de nuevo, y 0 es una variable x.
por otro lado tendre otras variables tipo yyyy=2011, mm=10, dd=25 y x=0.

la idea es cambiar el nombre a esa variable de forma que sea siempre el mismo... y quede algo como :
generico=M_20111025_0, pero que lo haga automaticamente cada vez utilizando el resto de variables antes definidas.

pensaba que strcat me iba a ayudar, pero no veo la forma,
conoceis alguna otra funcion que pueda ser de ayuda?

gracias,
saludos
Dani
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

renombra variables

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/11/2012 16:33:34
sugerencias: estudiar cada comando que uso en el desarrollo de tu pregunta, asi aprenderas mejor como funciona el codigo.
Ya queda como aporte de la persona que pregunta, estudiar todo los comandos que uso en su pregunta. Caso contrario solo sabras ejecutar el codigo, pero desconoceras para que sirve cada comando.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> yyyy=round(2000*(rand+1));mm=round(5*(rand+1)); dd=round(10*(rand+1)); x=0;
>> V=['M_',num2str(yyyy),num2str(mm),num2str(dd),'_',num2str(x)]
 
V =
 
M_3357917_0
 
>> yyyy=round(2000*(rand+1));mm=round(5*(rand+1)); dd=round(10*(rand+1)); x=0;
>> V=['M_',num2str(yyyy),num2str(mm),num2str(dd),'_',num2str(x)]
 
V =
 
M_2784812_0
 
>> yyyy=round(2000*(rand+1));mm=round(5*(rand+1)); dd=round(10*(rand+1)); x=0;
>> V=['M_',num2str(yyyy),num2str(mm),num2str(dd),'_',num2str(x)]
 
V =
 
M_3412513_0



Ahora si quieres guardar un valor a ese variable generado, entonces combina lo que estoy dando con la funcion genvarname().




Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

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

renombra variables

Publicado por dani (10 intervenciones) el 07/11/2012 09:26:29
hola,
muchas gracias jose, ya lo tengo.
lo cuelgo para quien pueda interesar... la cosa queda algo asi.
(no he utilizado el genvarname)

nombrefichero=['M_' yyyy mm dd '_' x '.' palabra 1 ];
% donde yyyy mm dd x y palabra1 son variables definidas, y palabra1 es la extension del archivo a cargar.

load(nombrefichero)

nombregenerico=['M_',num2str(yyyy),num2str(mm),num2str(dd),'_',num2str(x)];
%cambia el nombre (solo class char)

nombregenerico1=eval(nombregenerico);%se evalua .


gracias, saludos,
dani
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