# 谱聚类matlab实现

• K3_969528
了解作者
• matlab
开发工具
• 55.1KB
文件大小
• zip
文件格式
• 0
收藏次数
• VIP专享
资源类型
• 0
下载次数
• 2022-02-22 10:27
上传日期

Spectral Clustering.zip
• Spectral Clustering
• Data
• Figures
• Original_SPL.jpg
21.6KB
• Ideal_SPL.jpg
21.7KB
• TwoMoons.mat
7.4KB
• SPL.mat
5.4KB
• Sparity_SPL.mat
3.5KB
• Demo
• Demo_TwoMoons.m
730B
• Demo_SPL.m
539B
• Demo_SPL.asv
541B
• GenerateSPL.m
1.6KB
• Functions
• Visual_SC.m
403B
355B
• SpectralClustering.m
2KB
• VisualData.m
1.6KB
• Visual_SPL.m
429B

function [ C, L, D, Q, V ] = SpectralClustering(W, k) %||||||||||||||||||||||||||||||||||||||||||| Note |||||||||||||||||||||||||||||||||||||||||| % spectral clustering algorithm % input: adjacency matrix W; number of cluster k % return: cluster indicator vectors as columns in C; unnormalized Laplacian L; % degree matrix D; eigenvectors matrix Q; eigenvalues matrix V %//////////////////////////////// Body //////////////////////////////////// % calculate degree matrix degs = sum(W, 2); D = sparse(1:size(W, 1), 1:size(W, 2), degs); % sparse matrix % compute unnormalized Laplacian L = D - W; % compute the eigenvectors corresponding to the k smallest eigenvalues % diagonal matrix V is Ncut L's k smallest magnitude eigenvalues % matrix Q whose columns are the corresponding eigenvectors. [Q1, V1] = eigs(L, k+1, 'SA'); % min eigenvalue == 0 v = diag(V1); V = diag(v(2:end)); Q = Q1(:,2:end); % use the k-means algorithm to cluster V row-wise % C will be a n-by-1 matrix containing the cluster number for each data point C = kmeans(Q, k); % convert C to a n-by-k matrix containing the k indicator vectors as columns C = sparse(1:size(D, 1), C, 1); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % function C = SpectralClustering(W, k) % [n,m] = size(W) % s = sum(W); % D = full(sparse(1:n, 1:n, s)); % E = D^(-1/2)*W*D^(-1/2); % [Q, V] = eigs(E, k); % C = kmeans(Q, k); % end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % [Q1,V1] = eig(L); % m = size(L,1); % Q = zeros(m,k); % diag_e = diag(V1); % element = sort( diag_e ); % % if ( diag_e(1)<1e-10 ) % for i = 2:( k+1 ) % v(i-1) = element(i); % idx = find( diag_e == v(i-1),1); % Q(:,i-1) = Q1(:,idx); % end % else % for i = 1:k % v(i) = element(i); % idx = find( V1 == v(i),1); % Q(:,i) = Q1(:,idx); % end % end % V = diag(v); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

相关推荐
• Matlab合集
冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版（冈萨雷斯）+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算：MATLAB技术实现(第2版)].杨淑莹.扫描版
• MATLAB教程
MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
• MATLAB
MATLAB 该项目是在matlab上完成的，涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的，并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵（旋转，平移等）的概念...
• MATLAB基础
一本学习matlab的一本好书
• MATLAB编译器
基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件，并在没有安装MATLAB的计算机上进行部署。
• matlabruntime
通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此，我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序，然后使用具有Matlab运行时（ 的容器）运行该应用程序 ）...
• matlab实现
matlab实现 matlab实现matlab实现matlab实现matlab实现
• matlab 教程
matlab 信号处理资料，里面包含信号处理pdf文档，一些杂乱的程序和命令等
• matlab教程
matlab教程，PPT格式，包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点，并且每个知识点独立成为PPT，内还含有matlab信号处理详解等文档...
• matlab简介
1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后，会看到一个视窗MATLAB Command Window称为指令视窗，它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...