Matlab - variables en bucle for

 
Vista:

variables en bucle for

Publicado por Fonsi (5 intervenciones) el 23/07/2009 10:33:25
Hola,

Tengo una duda sobre el manejo de las variables en un bucle for.
¿Puedo hacer que en cada vuelta que de el bucle for, la variable en la que quiero guardar algo tenga un nombre distinto?

Es decir, algo que sea por el estilo:

for i = 1:6
data(i) = i + 4;
end

obteniendo en este caso 6 variables distintas y cada una guardando un valor. Mi intención es, en este caso, tener: data1 = 5; data2 = 6; .... y asi sucesivamente.

Muchas gracias de antemano.

Saludos
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

RE:variables en bucle for

Publicado por Kike (304 intervenciones) el 23/07/2009 16:10:34
Sí es posible hacerlo, pero creo que te complicarías después al operar con 6 variables en vez de trabajar con un solo vector. MATLAB está optimizado para operar con vectores y matrices, por eso creo que lo mejor sería crear un vector que se llame data y luego hacer tus operaciones indicando cuál elemento de data se desea utilizar.

Ejemplo:
data = [ ]; % vector vacío
for i = 1:6
data(i) = i + 4;
end

% Operaciones con el vector. Nota que sólo se necesita una sentencia y no hay necesidad de utilizar un FOR.
% Elevar al cuadrado todos los elementos de data, es más fácil que elevar al cuadrado 6 variables diferentes
data2 = data.^2;

% Sumo el primer y el último elemento y lo agrego a data al final
data(end+1) = data(1)+data(end);

% Promedio de los valores de data
promedio = mean(data);

Pero volviendo a tu pregunta, la respuesta es esta:
for k=1:6
eval(sprintf(' var%d = k+4 ', k))
end
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

RE:variables en bucle for

Publicado por Fonsi (5 intervenciones) el 23/07/2009 16:17:08
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

RE:variables en bucle for

Publicado por fismat (391 intervenciones) el 23/07/2009 16:21:29
Hola Fonsi

Espero sea lo que buscas

Aqui un ejemplo

clear variable*

for k = 1:5
v = genvarname('variable',who);
eval([v ' = k+4']);
end

whos
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

RE:variables en bucle for

Publicado por fismat (391 intervenciones) el 23/07/2009 16:30:42
Hola Fonsi, kike

Aqui otro ejemplo:,

aca podemos crear n variables con contenidos muy diversos (vectores aleatorios)

Saludos ;-)

Fismat

--------------------------
clear variable*
for k = 1:50
r=ceil(10*rand(1,2));
v = genvarname('variable',who);
eval([v ' = k+4']);
% Aqui otro ejemplo
eval([v ' = r']);
end

who variable*

Your variables are:

variable variable15 variable21 variable28 variable34 variable40 variable47
variable1 variable16 variable22 variable29 variable35 variable41 variable48
variable10 variable17 variable23 variable3 variable36 variable42 variable49
variable11 variable18 variable24 variable30 variable37 variable43 variable5
variable12 variable19 variable25 variable31 variable38 variable44 variable6
variable13 variable2 variable26 variable32 variable39 variable45 variable7
variable14 variable20 variable27 variable33 variable4 variable46 variable8
variable9
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