Matlab - Direccionamiento en Matlab

 
Vista:

Direccionamiento en Matlab

Publicado por Rolando (1 intervención) el 27/05/2008 17:44:49
hola necesito direccionar durante un ciclo for a n vectores distintos, a ver si puedo explicarme

ejemplo

%pregunto el numero de ciclos

cic=input('numero de ciclos')

for m = 1:cic

a = [rand rand rand rand] % pero aqui el problema es que siempre me lo guardaria en la
%misma variable y yo quiero que me lo guarde variables
% diferentes
end

y que mi salida fuera algo como :

a=[rand rand rand rand]
b=[rand rand rand rand]
c=[rand rand rand rand]
y etcetera etcetera etcetera

podria darme por favor una sugerencia
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:Direccionamiento en Matlab

Publicado por Kike (304 intervenciones) el 27/05/2008 19:41:44
Dado que MATLAB está optimizado para trabajar con matrices, es más fácil tener una sola variable en vez de tener n variables.

Para continuar con lo que ya has avanzado:
%pregunto el numero de ciclos
cic=input('numero de ciclos')

matriz=[ ]; % creo una matriz que almacenrá los datos generados en el bucle for
for m = 1:cic
matriz(end+1,:) = [rand rand rand rand];
end

Otra forma más fácil es evitar el bucle for:
%pregunto el numero de ciclos
cic=input('numero de ciclos')
matriz = rand(cic,4) % matriz aleatoria de 4 columnas y cic filas

Cada una de las variables que deseabas ahora está dentro de la matriz. Por ejemplo, si se desea obtener la quinta variable para hacer cierto cálculo con ella sería obteniendo la quinta fila de la matriz, así:
quinta_variable = matriz(5,:)

Y si deseo elevar al cuadrado a todos esas variables:
cuadrado = matriz.^2 % evito un bucle

Pero eso era una sugerencia. Para continuar con la idea que tenías inicialmente (y que yo supongo que es un camino más largo):
%pregunto el numero de ciclos
cic=input('numero de ciclos')

for m = 1:cic
eval(sprintf('var_%d = rand(1,4)', m));
end

De esta manera se generan variables que se llamarán var_1, var_2, etc., y las cuales son vectores aleatorios de 4 elementos.
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