?? coefsvd.m
字號:
function [Ahat,k]=coefsvd(X,alpha)
% Generacion de la matriz de coeficientes a traves de SVD
% [Ahat,k]=coefsvd(X)
% entradas:
% X: matriz de vectores de caracteristicas
% Salidas:
% Ahat: matriz de vectores de caracteristicas con coef. SVD
% k: numero de clusters
[U,Sigma,V] = svd(X);
csigma = Sigma*ones(size(Sigma,2),1); %guardo los valores singulares en un vector
rango = rank(X); %calculo el rango de X
csigma = csigma(1:rango); %tomo los valores singulares hasta el rango de X
csigma2= csigma.^2;
delta =alpha*(sum(csigma2)); %calculo de delta
cum_aux = 0;
k=0;
while cum_aux <= delta
k = k + 1;
cum_aux = cum_aux + csigma2(k); %calculo k, obteniendo el numero de cluster requerido
end
V_aux = V(:,1:k); % acoto la matriz V a la cantidad de coeficientes que voy a usar
csigma_aux = csigma(1:k); % acoto la cantidad de valores singulares a la cantidad de coeficientes que voy a usar
csigma_aux = ones(size(V_aux,1),1)*csigma_aux'; %formo una matriz donde las filas son csigma_aux
Ahat_aux = V_aux.*csigma_aux; %peso cada componente de v por su respectivo valor singular
Ahat = Ahat_aux';
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -