当前位置:文档之家› 聚类分析matlab程序设计代码

聚类分析matlab程序设计代码

function varargout = lljuleifenxi(varargin)% LLJULEIFENXI MATLAB code for lljuleifenxi.fig% LLJULEIFENXI, by itself, creates a new LLJULEIFENXI or raises the existing% singleton*.%% H = LLJULEIFENXI returns the handle to a new LLJULEIFENXI or the handle to% the existing singleton*.%% LLJULEIFENXI('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in LLJULEIFENXI.M with the given input arguments.%% LLJULEIFENXI('Property','Value',...) creates a new LLJULEIFENXI or raises the% existing singleton*. Starting from the left, property value pairs are % applied to the GUI before lljuleifenxi_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to lljuleifenxi_OpeningFcn via varargin. %% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help lljuleifenxi% Last Modified by GUIDE v2.5 07-Jan-2015 18:18:25% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @lljuleifenxi_OpeningFcn, ...'gui_OutputFcn', @lljuleifenxi_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before lljuleifenxi is made visible.function lljuleifenxi_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to lljuleifenxi (see VARARGIN)% Choose default command line output for lljuleifenxihandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes lljuleifenxi wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = lljuleifenxi_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles)% hObject handle to edit6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called function input_data_Callback(hObject, eventdata, handles)% hObject handle to input_data (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of input_data as text% str2double(get(hObject,'String')) returns contents of input_data as a double% --- Executes during object creation, after setting all properties. function input_data_CreateFcn(hObject, eventdata, handles)% hObject handle to input_data (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction input_obj_num_Callback(hObject, eventdata, handles)% hObject handle to input_obj_num (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of input_obj_num as text % str2double(get(hObject,'String')) returns contents ofinput_obj_num as a double% --- Executes during object creation, after setting all properties. function input_obj_num_CreateFcn(hObject, eventdata, handles)% hObject handle to input_obj_num (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction input_var_num_Callback(hObject, eventdata, handles)% hObject handle to input_var_num (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of input_var_num as text % str2double(get(hObject,'String')) returns contents ofinput_var_num as a double% --- Executes during object creation, after setting all properties. function input_var_num_CreateFcn(hObject, eventdata, handles)% hObject handle to input_var_num (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popm_class_method.function popm_class_method_Callback(hObject, eventdata, handles)% hObject handle to popm_class_method (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = cellstr(get(hObject,'String')) returnspopm_class_method contents as cell array% contents{get(hObject,'Value')} returns selected item frompopm_class_method% --- Executes during object creation, after setting all properties. function popm_class_method_CreateFcn(hObject, eventdata, handles)% hObject handle to popm_class_method (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popm_cluster_method.function popm_cluster_method_Callback(hObject, eventdata, handles)% hObject handle to popm_cluster_method (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = cellstr(get(hObject,'String')) returnspopm_cluster_method contents as cell array% contents{get(hObject,'Value')} returns selected item frompopm_cluster_method% --- Executes during object creation, after setting all properties. function popm_cluster_method_CreateFcn(hObject, eventdata, handles)% hObject handle to popm_cluster_method (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on mouse press over axes background.function axes_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to axes (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes during object deletion, before destroying properties. function axes_DeleteFcn(hObject, eventdata, handles)% hObject handle to axes (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in btn_start.function btn_start_Callback(hObject, eventdata, handles)% hObject handle to btn_start (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)str_num_obj = get(handles.input_obj_num,'String');str_num_var = get(handles.input_var_num,'String');exp = '\D+';isNum =(isempty(regexp(str_num_obj,exp))&&isempty(regexp(str_num_obj,exp)));if(isNum)num_obj = str2num(str_num_obj);num_var = str2num(str_num_var);trysource_data = str2num(get(handles.input_data,'String'));val_class_method = get(handles.popm_class_method,'Value');% return the selected item from pop_menustr_class_method = get(handles.popm_class_method,'String');% return the contents of the pop_menu% this is the default valuehandles.current_method = 'cityblock';switch str_class_method{val_class_method} % it is the current selected item (String)case'¾ø¶ÔÖµ¾àÀë'handles.current_method = 'cityblock';case'ãɿɷò˹»ù¾àÀë'handles.current_method = 'minkowski';case'ÂíÊϾàÀë'handles.current_method = 'mahalanobis';case'×Ô¶¨Òå¾àÀë'handles.current_method = 'myDistFun';% alert to user to edit custome function in the myDistFun.m and the% default is use the euclidean distmH = msgbox('you could custom the distance function in the file myDistFun,if not,the default is the City block distance','attention');uiwait(mH);case'¼Ð½ÇÓàÏÒ'handles.current_method = 'cosine';case'Ïà¹ØÏµÊý'handles.current_method = 'correlation';endval_cluster_method = get(handles.popm_cluster_method,'Value');% return the selected item from pop_menustr_cluster_method = get(handles.popm_cluster_method,'String');% return the contents of the pop_menu% this is the default valuehandles.current_cluster_method = 'single';switch str_cluster_method{val_cluster_method}case'×î¶Ì¾àÀë·¨ 'handles.current_cluster_method = 'single';case'×¾àÀë·¨'handles.current_cluster_method = 'complete';case'Öмä¾àÀë·¨'handles.current_cluster_method = 'median';case'ÖØÐÄ·¨'handles.current_cluster_method = 'centroid';case'ÀàÆ½¾ù·¨'handles.current_cluster_method = 'average';case'Àë²îƽ·½ºÍ·¨'handles.current_cluster_method = 'ward';end%% check the datareal_rows = size(source_data,1);real_cols = size(source_data,2);if(real_rows ~= num_obj || real_cols ~= num_var)% alert to user that the data dont't matchingmH = msgbox('the size of your input data is notmatching','attention');uiwait(mH);else%% begin cluster and show the cluster tree on the axespdist_method = handles.current_method;if(strcmp(pdist_method,'myDistFun'))dist_matr = pdist(source_data,@myDistFun);elsedist_matr = pdist(source_data,pdist_method);endlinkage_method = handles.current_cluster_method;cluster_result = linkage(dist_matr,linkage_method);axes(handles.axes);dendrogram(cluster_result);endcatch errmH = msgbox('please input the correct data!');uiwait(mH)endelsemH = msgbox('please input the correct data!');uiwait(mH);end% --- Executes during object creation, after setting all properties. function tittle_CreateFcn(hObject, eventdata, handles)% hObject handle to tittle (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called function Z = myDistFun( X,Y )%the custom distance function% where X is a 1-by-n vector,and Y is an m-by-n matrix,% myDistFun must return an m-by-1 vector of distances Z,% whose kth element is the distance between X and Y(k,:).%% this is the City block distance definitionXX = repmat(X,size(Y,1),1);Z = sum(abs(XX - Y),2);%% you can definite your own distance function hereend。

相关主题