Matlab - Guardas variables en un vector

   
Vista:

Guardas variables en un vector

Publicado por emmanuel (12 intervenciones) el 12/11/2009 22:21:23
Pues mi problema radica en que quiero obtener los centroides de una secuencia de numero aleatoriso, pero una vez que se obtienen, como los guardo en otro vector?
Por favor, espero que me puedan ayudar, para eso dejo el codigo que estoy utilizando haber si saben donde esta el error:

% Secuencia de 10000 numeros aleatorios entre 0 y 100:
y=[100*rand(1,10000)];
%
% Secuencia de entrenamiento:
CI=rand(2,1);
%
% Se calculan la frontera y el centroide, la funcion lloyds lo calcula automaticamente:
[f,c]=lloyds(y,CI)
%
% Se codifica de forma uniforme:
[inds,sq] = quantiz(y,f,c);
%
% Se calcula la distorsion:
N=length(sq)
resta=y'-sq;
cuad=resta.^2;
D=mean(cuad)
% Se establece el valor de Di:
Di=10^-3;
A=[ ];
B=[ ];
CODEBOOK=[ ];
% Comienza el ciclo repetitivo:
if D<=Di
CODEBOOK=c;% se guarda el centroide en otra variable

else
%se realiza una nueva division de la nueva region
for n=1:10000
if n<=f
% se mete a otra variable ¿como se mete en otra variable?
A=n;
% se repite el algortimo inicial
CI=rand(2,1);
[f,c]=lloyds(A,CI)
[inds,sq] = quantiz(A,f,c);
% se tiene una nueva f y dos nuevos c
% se calcula la distorsion
N=length(sq)
resta=A'-sq;
cuad=resta.^2;
D=mean(cuad)
% nueva D

else
% se mete a otra variable ¿como se mete en otra variable?
B=n;
CI=rand(2,1);
[f,c]=lloyds(B,CI)
[inds,sq] = quantiz(B,f,c);
% se tiene una nueva f y dos nuevos c
% se calcula la distorsion

N=length(sq)
resta=A'-sq;
cuad=resta.^2;
D=mean(cuad)
% nueva D
end
end
end
% Se repite el ciclo hasta que se tienen los valores finales
% Se muestra el codebook final

n representa cada uno de los elementos de y, los cuales se iran comparando con f para saber si se guardan en los vectores A o B.
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

guardando info

Publicado por arenas (3 intervenciones) el 12/11/2009 23:59:02
for n=1:10000
if n<=f
% se mete a otra variable ¿como se mete en otra variable?= AQUI SE HACE EL ALMACENAMIENTO EN UN VECTO COLUMNA
A(n,1)=n; %%%% ESTO PUEDE SERVIR
% se repite el algortimo inicial
CI=rand(2,1);
[f,c]=lloyds(A,CI)
[inds,sq] = quantiz(A,f,c);
% se tiene una nueva f y dos nuevos c
% se calcula la distorsion
N=length(sq)
resta=A'-sq;
cuad=resta.^2;
D=mean(cuad)
% nueva D
else
% se mete a otra variable ¿como se mete en otra variable? AQUI SE HACE EL ALMACENAMIENTO EN UN VECTO COLUMNA
B(n,1)=n; %%% ESTO PUEDE SERVIR
CI=rand(2,1);
[f,c]=lloyds(B,CI)
[inds,sq] = quantiz(B,f,c);
% se tiene una nueva f y dos nuevos c
% se calcula la distorsion
N=length(sq)
resta=A'-sq;
cuad=resta.^2;
D=mean(cuad)
% nueva D
end
end
end
% Se repite el ciclo hasta que se tienen los valores finales
% Se muestra el codebook final

%n representa cada uno de los elementos de y, los cuales se iran comparando con f para saber si se guardan en los vectores A o B.

Ahora si deseas meterlo en variables diferentes, también se puede hacer. DIme cómo te fue
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