Matlab - Ramificación de variables

 
Vista:
sin imagen de perfil
Val: 31
Ha aumentado su posición en 8 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ramificación de variables

Publicado por Juan MG (20 intervenciones) el 20/04/2017 17:10:41
Hola buenas,

estoy creando un programa y se me ha ocurrido una forma de simplificar el código. Desafortunadamente, no sé cómo programar dicho recurso o siquiera si es posible hacerlo.

Mi intención es que a partir de un vector pueda ir creando otros nombres de variables.

1
2
3
4
5
6
7
SEGMENT = {'RFOO','RSHA','RTHG'}; %lo que tengo
 
%nuevas variables que quiero crear
RFOO.Fin
RSHA.Fin
RTHG.Fin
...etc.

Mi pregunta es si es posible que haya alguna manera, por la cual, al declarar SEGMENT{2}.Fin (por ejemplo) consiguiera el mismo resultado que declarando RSHA.Fin .

Las aplicaciones, como podréis imaginar, son bastante amplias. El vector SEGMENT con el que trabajo no es de dimensión 3 sino de 15. Si pudiera crear variables de esta manera ahorraría muchísimo código. De hecho, el código sería 15 veces menos extenso con un simple bucle "for".

Ejemplo de la idea:

1
2
3
4
5
6
7
8
9
n=length(SEGMENT);
 
for i = 1:n
 
      SEGMENT{i}.Fin = 2;
      SEGMENT{i}.Fext = 3;
      SEGMENT{i}.Freac = 4;
 
end

Si hay alguna manera de hacerlo me vendría genial.
Gracias de antemano y perdón por la extensión de la pregunta.
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
sin imagen de perfil
Val: 31
Ha aumentado su posición en 8 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ramificación de variables

Publicado por Juan (20 intervenciones) el 21/04/2017 13:07:27
Muchísimas gracias!

Esto es lo que estaba buscando.

Ya por último preguntar: si tras esto quiero hacer nuevas operaciones con dichas variables, ¿siempre tengo que utilizar el comando eval?

por ejemplo:

aux = eval([SEGMENT{i} '.Fin ']) + 2;

o ¿una vez utilizado eval es posible utilizar la variable de forma mas directa?
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 JESUS DAVID
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ramificación de variables

Publicado por JESUS DAVID (1818 intervenciones) el 21/04/2017 17:09:13
La puedes usar de forma directa pero si vas a usar diferentes variables en un ciclo debes usar eval nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 31
Ha aumentado su posición en 8 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ramificación de variables

Publicado por Juan MG (20 intervenciones) el 22/04/2017 00:23:43
De acuerdo, muchas gracias!
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