Matlab如何自定义隶属度函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab如何自定义隶属度函数相关的知识,希望对你有一定的参考价值。
= options(1); % Exponent for Umax_iter = options(2); % Max. iteration
min_impro = options(3); % Min. improvement
display = options(4); % Display info or not
obj_fcn = zeros(max_iter, 1); % Array for objective function
U = initfcm(cluster_n, data_n); % Initial fuzzy partition
% Main loop
for i = 1:max_iter,
[U, center, obj_fcn(i)] = stepfcm(data, U, cluster_n, expo);
if display,
fprintf('Iteration count = %d, obj. fcn = %f\n', i, obj_fcn(i));
end
% check termination condition
if i > 1,
if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, break; end,
end
end
其中
U = initfcm(cluster_n, data_n); % Initial fuzzy partition
这个就是初始化划分矩阵,随机产生一个隶属度矩阵,
代码如下:
U = rand(cluster_n, data_n);
col_sum = sum(U);
U = U./col_sum(ones(cluster_n, 1), :);
上面就是它初始化的一个隶属度矩阵,
cluster_n行,data_n列。
即一列中从上到下表示每个样本隶属与每一类的隶属度。
然后在算法中不断迭代,
最后得到的还是如此大的一个矩阵,代表每个样本隶属与每一类的隶属度
然后选择最大的那个就是,它就属于那一类。 参考技术A 模糊控制?
newfis建立规则
addvar 增加变量
admf 添加隶属度
以上是关于Matlab如何自定义隶属度函数的主要内容,如果未能解决你的问题,请参考以下文章