⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coefsvd.m

📁 SVD coefficient matrix from matrix of amplitude values
💻 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 + -