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


0