Matlab - Asignar nombre consecutivo a Vectores

   
Vista:

Asignar nombre consecutivo a Vectores

Publicado por Guebini (5 intervenciones) el 02/09/2014 11:40:03
Hola,

Deseo crear , a partir de una matriz M una serie de vectores A y quiero nombrarlos de la siguiente manera:



A1 = M(:,1)
A2 = M(:,2)
A3 = M(:,3)
.
Ai = M(:,i)
.
An= M(:,n)

¿Cómo se puede hacer?

Gracias.
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

Asignar nombre consecutivo a Vectores

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 02/09/2014 13:50:48
1
2
3
4
5
clear all
M=randn(5);
for i=1:size(M,1);
    evalc(strcat('M',num2str(i),'=M(i,:)'));
end


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>> eval1
>> M1
 
M1 =
 
   -0.7342   -0.2365    1.0001   -1.6702    0.3271
 
>> whos
  Name      Size            Bytes  Class     Attributes
 
  M         5x5               200  double
  M1        1x5                40  double
  M2        1x5                40  double
  M3        1x5                40  double
  M4        1x5                40  double
  M5        1x5                40  double
  ans       1x59              118  char




Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com
Estimado Usuario de Matlab, el correo es para servicios de programación, toda ayuda gratuita es vía foro
.

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_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

Asignar nombre consecutivo a Vectores

Publicado por guebos (5 intervenciones) el 02/09/2014 15:16:21
Gracias. Me va muy bien la solución.

Ahora para ejecutar un script sobre cada uno de los vectores creados M1, M2...M5 ¿Cómo sería? 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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Asignar nombre consecutivo a Vectores

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 02/09/2014 15:20:46
No es clara tu pregunta.
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

Asignar nombre consecutivo a Vectores

Publicado por guebos (5 intervenciones) el 02/09/2014 15:25:12
Si , por ejemplo quiero sacar la media de cada uno de esos vectores de manera secuencial:

mean (M1)
mean(M2)
...
mean(M5)

No se si se podría hacer de manera

for i=1:5

mean(Mi)

supongo que no.
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

Asignar nombre consecutivo a Vectores

Publicado por guebos (5 intervenciones) el 02/09/2014 15:51:26
¿Se entiende ahora?
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 Daniel

Asignar nombre consecutivo a Vectores

Publicado por Daniel (212 intervenciones) el 11/12/2014 16:53:07
el comando eval, tal como lo usó josé, se utiliza para hacer que una cadena de caracteres se "transforme" en una linea del código:

entonces

1
2
3
4
5
6
7
8
9
10
11
12
M=rand(5);
for i=1:5
    % pasa de numero a texto
    letra_i=num2str(i);
 
    % genera la linea Mi=M(:,i);
    eval(['M' letra_i '=M(:,' letra_i ');']);
 
    % genera la linea promedio(i)=mean(Mi);
    eval(['promedio(' letra_i ')=mean(M' letra_i ');']);
 
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