资源简介
FCM聚类。。
代码片段和文件信息
function[centerUobj_fun]=FCMCluster(datanoptions)
%采用模糊C均值将数据集data分为n类
%用法
% 1 [centerUobj_fcn]=FCMCluster(datanoptions);
% 2 [centerUobj_fcn]=FCMCluster(datan);
%输入
% data n*m矩阵,n个样本数,每个样本的维度为m
% n 类别数
% options 4*1 矩阵
% options(1):隶属度矩阵U的加权指数>1(缺省值2.0)
% options(2):最大迭代次数(缺省值100)
% options(3):隶属度最小变化量,迭代终止条件(缺省值1e-5)
% options(4):每次迭代是否输出信息标志(缺省值0)
%输出
% center 聚类中心
% U 隶属度矩阵
% obj_fun 目标函数值
if nargin~=2 && nargin~=3
error(‘Too many or too few input arguments‘);
end
data_n=size(data1); %求出data的第一维数,即行数、样本数
in_n=size(data2); %求出data的第二维数,即列数、特征属性个数
%默认参数
default_options=[2;100;1e-6;1];%隶属度矩阵U的指数2,最大迭代次数100,
%隶属度最小变化量,迭代终止条件1e-5
%1指输出迭代信息标志,可以设为0不输出。
%参数配置
%如果只输入前两个参数,选用默认的参数;如果参数个数小于4,其他选用默认参数
if nargin==2
options=default_options; %如果输入参数是2,则调用默认的option
else
if length(options)<4 %如果option<4,则使用其他默认值
tmp=default_options;
tmp(1:length(options))=options;
options=tmp;
end
nan_index=find(isnan(options)==1); %检测option中是否有nan值
options(nan_index)=default_options(nan_index);%将default_option的对应位
%置的数值给option中不是数的位置
if options(1)<=1
error(‘The exponent should be greater than 1!‘);
end %如果模糊矩阵的指数<=1,给出报错。
end
%将options 中的分量分别赋值给四个变量
expo=options(1); %隶属度矩阵U的指数
max_iter=options(2);%最大迭代次数
min_impro=options(3);%隶属度最小变化量,迭代终止条件
displ
- 上一篇:用MATLAB画点电荷的电场线
- 下一篇:计算方法上机实验报告-matlab
相关资源
- 计算方法上机实验报告-matlab
- 用MATLAB画点电荷的电场线
- 装箱问题遗传算法求解
- 基于matlab的电力系统谐波仿真
- 一维激波管问题upwind格式matlab代码
- MATLAB中图像背景噪声去除
- 自组织特征映射神经网络matlab
- 实验室的极化码编码译码仿真程序,
- 双极性PWM单相全桥逆变电路
- 普源示波器 matlab读取程序
- Matlab写的粒子群优化算法,很好用!
- 基于MATLAB的两输入两输出DMC控制教程
- matlab基于GUI实现记事本功能
- 肤色模型人脸识别matlab代码
- 用matlab生成正弦表程序.m文件
- 数字信号处理课程设计
- 单神经元自适应PID代码
- 运动控制 速度开环调速系统模型
- 多元回归的交叉验证程序 可供做预测
- 最速下降法MATLAB程序
- 遗传算法程序优化pid参数
- svpwm逆变及电机转差频率控制
- 数值计算方法 基于 MATLAB实现
- 用matlab TV模型图像修复
- 基于GS算法的数字水印
- 熵权法matlab编程
- boost电路模型
- Floyd最短路径算法
- 风力机叶片设计MATLAB程序
- MatlabR2019a安装破解教程.zip
评论
共有 条评论