亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? subclust.m

?? 模糊控制工具箱,很好用的,有相應的說明文件,希望對大家有用!
?? M
字號:
function [centers,sigmas] = subclust(X,radii,xBounds,options)
%SUBCLUST Locates data cluster centers using subtractive clustering.
%
%   SUBCLUST operates by finding the optimal data point to define a cluster
%   center, based on the density of surrounding data points. All data points
%   within the distance RADII of this point are then removed, in order to
%   determine the next data cluster and its center. This process is repeated
%   until all of the data is within the distance RADII of a cluster center.
%
%   [C] = SUBCLUST(X,RADII) clusters the data points in the M-by-N matrix X,
%   where M is the number of data points and N is the number of coordinates
%   (data dimensions) that specify each point. RADII has a value between 0 and 1
%   and specifies the size of the cluster in each of the data dimensions,
%   assuming the data fall within a unit hyperbox (range [0 1]). Specifying a
%   smaller cluster radius will usually yield more (smaller) clusters in the
%   data. When RADII is a scalar it is applied to all data dimensions, when it
%   is a vector, it has one entry for each data dimension. The cluster centers
%   are returned as rows of the matrix C. C has size J-by-N, if J clusters are
%   required to cluster the data.
%
%   [C] = SUBCLUST(...,XBOUNDS) also specifies a matrix XBOUNDS, of size
%   2-by-N, used to normalize the data X into a unit hyperbox (range [0 1]).
%   Each column of XBOUNDS provides the minimum and maximum values for the
%   corresponding data dimension. If XBOUNDS is an empty matrix or not provided,
%   the minimum and maximum data values found in X, are used as defaults.
%
%   [C] = SUBCLUST(...,OPTIONS) specifies a vector for changing the default
%   algorithm parameters:
%      OPTIONS(1):  The squash factor, is used to multiply the RADII values to
%                   determine the neighborhood of a cluster center within which
%                   the existence of other cluster centers are discouraged.
%      OPTIONS(2):  The accept ratio, sets the potential, as a fraction of the
%                   potential of the first cluster center, above which another
%                   data point will be accepted as a cluster center.
%      OPTIONS(3):  The reject ratio sets the potential, as a fraction of the
%                   potential of the first cluster center, below which a data
%                   point will be rejected as a cluster center.
%      OPTIONS(4):  Displays progress information unless it is set to zero.
%   The default values for the OPTIONS vector are [1.25 0.5 0.15 0].
%
%   Examples
%       X1 = 10*rand(50,1);
%       X2 =  5*rand(50,1);
%       X3 = 20*rand(50,1)-10;
%       X = [X1 X2 X3];
%      [C] = subclust(X,0.5) specifies a range of influence of 0.5 for all data
%      dimensions.
%
%      [C] = subclust(X,[0.5 0.25 0.3],[],[2.0 0.8 0.7 0]) specifies a range of
%      influence of 0.5, 0.25, and 0.3 for the first, second and third data
%      dimensions. The scaling factors for mapping the data into a unit hyperbox
%      will be obtained from the minimum and maximum data values. The squash
%      factor is set to 2.0, indicating that we want to only find clusters that
%      are far from each other, the accept ratio is set to 0.8, indicating that
%      we will only accept data points that have very strong potential of being
%      cluster centers, the reject ratio is set to 0.7, indicating that we want
%      to reject all data points without a strong potential.
%
%   See also GENFIS2.

%   Steve Chiu, 1-25-95
%   Roger Jang, 2-26-96, replace some for-loops with vectorized codes
%   N. Hickey, 04-16-01
%   Copyright 1994-2002 The MathWorks, Inc. 
%   $Revision: 1.19 $  $Date: 2002/04/14 22:21:08 $

%	Reference 
%	S. Chiu, "Fuzzy Model Identification Based on Cluster Estimation," J. of
%	Intelligent & Fuzzy Systems, Vol. 2, No. 3, 1994.


[numPoints,numParams] = size(X);

if nargin < 4
	options = [1.25 0.5 0.15 0];
end

if nargin < 3
    xBounds = [];
end

% if only one value is given as the range of influence, then apply that
% value to all data dimensions 
if length(radii) == 1 & numParams ~= 1
    radii = radii * ones(1,numParams);
end

sqshFactor = options(1);
acceptRatio = options(2);
rejectRatio = options(3);
verbose = options(4);

% distance multipliers for accumulating and squashing cluster potentials
accumMultp = 1.0 ./ radii;
sqshMultp = 1.0 ./ (sqshFactor * radii);

if verbose
    disp('Normalizing data...');
end

if length(xBounds) == 0
    % No data scaling range values are specified, use the actual minimum and maximum values
    minX = min(X);
    maxX = max(X);
    % If the actual min and max values have a range of zero, calculate a small range
    % relative to the data, to allow a sigma value to be calculated.
    index = find(maxX == minX);
    minX(index) = minX(index) - 0.0001*(1 + abs(minX(index)));
    maxX(index) = maxX(index) + 0.0001*(1 + abs(maxX(index)));
else
    % Use the user supplied data range values in xBounds
    minX = xBounds(1,:);
    maxX = xBounds(2,:);
    % Verify correct dimensions and values for xBounds were supplied
    if length(minX) ~=  size(X,2)
        error('xBounds contains the wrong dimensions for input data X');
    elseif any(maxX == minX)
        error('xBounds has a data range of zero');
    end
end

% Normalize the data into a unit hyperbox using the verified minX and maxX
for id = 1:numParams
    X(:,id) = (X(:,id) - minX(id)) / (maxX(id) - minX(id));
end
X = min(max(X,0),1);

if verbose
    disp('Computing potential for each data point...');
end

% potVals = the potential of each data point to be a cluster center
potVals = zeros(1,numPoints);

% compute the initial potentials for each data point
%for i=1:numPoints
%	thePoint = X(i,:);
%	% potVals(i) is the potential of the i'th data point
%	potVals(i) = potVals(i) + 1.0;  % add 1.0 for being close to yourself
%
%	for j=(i+1):numPoints
%		nextPoint = X(j,:);
%		dx = (thePoint - nextPoint) .* accumMultp;
%		dxSq = dx * dx';
%		mu = exp(-4.0 * dxSq);
%
%		potVals(i) = potVals(i) + mu;
%		potVals(j) = potVals(j) + mu;
%	end	% endfor j=(i+1):numdata
%
%end	% end for i=1:numdata

% compute the initial potentials for each data point
% Vectorized version by Roger Jang, 2-26-96
new_accumMultp = accumMultp(ones(1,numPoints),:);
UseWaitBar = (numPoints > 500);
if UseWaitBar
	h = waitbar(0,'Please wait...');
end

for i=1:numPoints,
	thePoint = X(i,:);
	thePoint = thePoint(ones(1,numPoints),:);
	dx = (thePoint - X) .* new_accumMultp;
	if numParams == 1,
		potVals(i) = sum(exp(-4*dx.^2));
	else
		potVals(i) = sum(exp(-4*sum(dx.^2,2)));
	end
	if UseWaitBar & mod(i,100)==0
		waitbar(i/numPoints);
	end 
end

if UseWaitBar
	close(h)    
end

% Find the data point with highest potential value.  refPotVal is the
% highest potential value, used as a reference for accepting/rejecting
% other data points as cluster centers.
[refPotVal,maxPotIndex] = max(potVals);

% Start iteratively finding cluster centers and subtracting potential
% from neighboring data points.  maxPotVal is the current highest
% potential value and maxPotIndex is the associated data point's index.
maxPotVal = refPotVal;

% centers = the cluster centers that has been found
centers = [];
numClusters = 0;
findMore = 1;

while findMore & maxPotVal
	findMore = 0;
	maxPoint = X(maxPotIndex,:);
	maxPotRatio = maxPotVal/refPotVal;

	if maxPotRatio > acceptRatio
		% the new peak value is significant, accept it
		findMore = 1;
	elseif maxPotRatio > rejectRatio
		% accept this data point only if it achieves a good balance between having
		% a reasonable potential and being far from all existing cluster centers
		minDistSq = -1;

		for i=1:numClusters
			dx = (maxPoint - centers(i,:)) .* accumMultp;
			dxSq = dx * dx';

			if minDistSq < 0 | dxSq < minDistSq
				minDistSq = dxSq;
			end
		end	% end for i=1:numClusters

		minDist = sqrt(minDistSq);
		if (maxPotRatio + minDist) >= 1
			findMore = 1;	% tentatively accept this data point as a cluster center
		else
			findMore = 2;	% remove this point from further consideration, and continue
		end
	end	% end if maxPotRatio > acceptRatio

	if findMore == 1
		% add the data point to the list of cluster centers
		centers = [centers ; maxPoint];
		numClusters = numClusters + 1;

		if verbose
			msg = sprintf('Found cluster %g, potential = %g',numClusters,maxPotRatio);
			disp(msg);
		end

		% subtract potential from data points near the new cluster center
%		for i=1:numPoints
%			nextPoint = X(i,:);
%			potVal = potVals(i);
%			dx = (maxPoint - nextPoint) .* sqshMultp;
%   			dxSq = dx * dx';
%
%			potVal = potVal - (maxPotVal * exp(-4.0 * dxSq));
%			if potVal < 0
%				potVal = 0;
%			end
%
%			potVals(i) = potVal;
%		end % end for i=1:numdata

		% subtract potential from data points near the new cluster center
		% Vectorized version by Roger Jang, 2-26-96
		new_sqshMultp = sqshMultp(ones(1,numPoints),:);
		tmp = maxPoint(ones(1,numPoints), :);
		dx = (tmp - X) .* new_sqshMultp;
		if numParams == 1,
			deduct = maxPotVal*exp(-4*dx.^2);
		else
			deduct = maxPotVal*exp(-4*sum(dx.^2,2));
		end
		potVals = potVals - deduct';
		potVals(potVals<0) = 0; 

		% find the data point with the highest remaining potential
		[maxPotVal,maxPotIndex] = max(potVals);

	elseif findMore == 2
		potVals(maxPotIndex) = 0;
		[maxPotVal,maxPotIndex] = max(potVals);
	end % end if findMore == 1
end % end while findMore & maxPotVal

% Scale the cluster centers from the normalized values back to values in
% the original range
for i=1:numParams
	centers(:,i) = (centers(:,i) * (maxX(i) - minX(i))) + minX(i);
end

% Compute the sigma values for the clusters
sigmas = (radii .* (maxX - minX)) / sqrt(8.0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清在线精品| 最新国产精品久久精品| 亚洲成av人片一区二区梦乃 | 成人激情黄色小说| 国产欧美1区2区3区| 成人午夜免费电影| 综合欧美一区二区三区| 欧美综合天天夜夜久久| 日韩二区在线观看| 欧美videos大乳护士334| 国产一区二区在线视频| 国产精品国产三级国产专播品爱网| www.日韩在线| 亚洲国产精品自拍| 91精品国产综合久久精品性色| 久久不见久久见免费视频7| 国产婷婷色一区二区三区| 色综合久久88色综合天天6| 午夜欧美大尺度福利影院在线看| 日韩三区在线观看| 成人免费精品视频| 亚洲成av人在线观看| 久久亚洲欧美国产精品乐播| 成人avav在线| 日韩影院免费视频| 精品国产不卡一区二区三区| 成人av在线资源网| 亚洲mv在线观看| 国产区在线观看成人精品| 欧美艳星brazzers| 国产乱一区二区| 亚洲自拍偷拍综合| 久久久精品免费网站| 欧美午夜电影在线播放| 国产成人精品亚洲777人妖| 亚洲动漫第一页| 国产亚洲美州欧州综合国| 欧美日韩一区二区三区四区五区| 国产在线一区二区| 亚洲成在线观看| 国产日韩欧美电影| 91精品婷婷国产综合久久性色| 岛国一区二区三区| 久久不见久久见免费视频1| 亚洲精品国产精品乱码不99| 精品国产精品一区二区夜夜嗨| 在线观看视频一区| 成人午夜电影网站| 激情综合网av| 日韩中文字幕一区二区三区| 中文字幕欧美一区| 精品福利视频一区二区三区| 日本国产一区二区| 成人美女在线视频| 国产麻豆成人精品| 全国精品久久少妇| 亚洲高清一区二区三区| 亚洲精品ww久久久久久p站| 日本一区二区久久| 久久久av毛片精品| 欧美r级电影在线观看| 欧美日韩国产小视频| 色综合一区二区三区| 成人午夜激情片| 成人午夜短视频| 国产精品综合久久| 精品亚洲国内自在自线福利| 日韩主播视频在线| 日韩精品色哟哟| 日韩国产高清在线| 午夜电影网一区| 亚洲一区二区三区自拍| 一区二区三区**美女毛片| ...xxx性欧美| 亚洲欧美日韩国产一区二区三区| 国产精品盗摄一区二区三区| 国产精品久久久久影院| 国产亚洲精品超碰| 欧美激情一区二区三区| 国产欧美久久久精品影院| 久久午夜羞羞影院免费观看| 2017欧美狠狠色| 久久久精品免费免费| 国产日韩欧美精品在线| 中文文精品字幕一区二区| 中文字幕av免费专区久久| 国产精品女同一区二区三区| 国产精品视频在线看| 自拍偷拍国产亚洲| 亚洲一线二线三线视频| 亚洲午夜激情av| 免费成人小视频| 国产激情一区二区三区桃花岛亚洲| 国产成人日日夜夜| 成人av网站在线观看| 一本一道久久a久久精品综合蜜臀| 91久久精品午夜一区二区| 欧美吞精做爰啪啪高潮| 91精品久久久久久久99蜜桃| 精品久久久久久久久久久久久久久久久| 欧美电影免费观看高清完整版在线| 亚洲精品一区二区在线观看| 国产精品私人自拍| 亚洲一二三区在线观看| 青青草一区二区三区| 国产一区视频在线看| 成人黄色一级视频| 91国内精品野花午夜精品| 欧美一区二区在线不卡| 久久久99久久精品欧美| 一区二区三区免费看视频| 日本午夜精品一区二区三区电影 | 国产成人综合在线观看| 懂色中文一区二区在线播放| 在线观看三级视频欧美| 欧美一级夜夜爽| 国产精品伦理一区二区| 午夜精品福利久久久| 国产精华液一区二区三区| 欧美亚洲国产bt| 久久久精品中文字幕麻豆发布| 亚洲精品成人天堂一二三| 国内成人免费视频| 色香色香欲天天天影视综合网| 91麻豆精品国产91久久久久久| 国产蜜臀av在线一区二区三区| 亚洲一区二区三区四区的| 国产91在线|亚洲| 国产精品人人做人人爽人人添| 亚洲成人av电影在线| 国产高清在线观看免费不卡| 欧美日韩一区国产| 国产精品人妖ts系列视频| 美日韩黄色大片| 欧美亚洲国产怡红院影院| 国产人伦精品一区二区| 日韩va亚洲va欧美va久久| 91麻豆精品在线观看| 欧美va亚洲va国产综合| 亚洲一区二区三区四区在线免费观看| 精品视频在线免费观看| 中文字幕久久午夜不卡| 捆绑调教美女网站视频一区| 91成人在线免费观看| 国产欧美一区二区三区沐欲| 日韩vs国产vs欧美| 欧洲人成人精品| 一区二区中文视频| 国产高清在线观看免费不卡| 日韩精品中午字幕| 五月天欧美精品| 欧美熟乱第一页| 一区二区三区美女视频| 成人一区在线看| 久久九九99视频| 国内精品久久久久影院薰衣草 | 一本一本久久a久久精品综合麻豆| 久久久精品免费免费| 极品销魂美女一区二区三区| 欧美精品视频www在线观看| 亚洲制服欧美中文字幕中文字幕| 成人激情图片网| 欧美韩日一区二区三区四区| 国产精品一区二区免费不卡| 亚洲精品在线网站| 九色|91porny| 精品1区2区在线观看| 国产在线播放一区三区四| 欧美精品一区二区三区四区| 免费成人小视频| 欧美videofree性高清杂交| 久久aⅴ国产欧美74aaa| 欧美www视频| 国产精品1区2区3区| 国产亚洲欧美一级| 成人性生交大片免费看在线播放 | 奇米精品一区二区三区在线观看一| 欧美日韩国产一级二级| 日韩不卡一区二区| 2020国产精品久久精品美国| 国产在线播精品第三| 亚洲国产精品v| 99久久精品费精品国产一区二区| 亚洲视频一二三| 欧美色网站导航| 日韩va欧美va亚洲va久久| 精品免费国产一区二区三区四区| 国产一区二区在线观看视频| 国产日韩欧美制服另类| 91丨porny丨国产| 亚洲午夜免费电影| 日韩三级在线观看| 大白屁股一区二区视频| 亚洲三级免费电影| 欧美肥胖老妇做爰| 国产在线不卡一卡二卡三卡四卡| 国产精品剧情在线亚洲| 欧美在线不卡视频| 精油按摩中文字幕久久| 亚洲欧洲在线观看av|