Assign
Never
function [cmcs,cmcsGraph,outliers] = ... CAssign(cmcs,outliers,dataPoint,radius,minThreshold,cmcsGraph,counter) global callingTimesA timeTableA numberOfcmcs = size(cmcs.Centre,1); numberOfOutliers = size(outliers.Centre,1); if (numberOfcmcs+numberOfOutliers)==0 % No cmcs or outliers are present numberOfOutliers = numberOfOutliers + 1; outliers.Centre(numberOfOutliers,:) = dataPoint; outliers.Count(numberOfOutliers,:) = 1; outliers.Life(numberOfOutliers,:) = 1; outliers.pointsIndices{1} = counter; callingTimesA(counter) = 0 ; timeTableA(counter) = 0; return; else % Compute the nearest cmcs or outliers centers = [cmcs.Centre;outliers.Centre]; % calculate number of calling times callingTimesA(counter) = (size(centers,1)); tic; distsPointCenters = pdist2(dataPoint,centers); timeTableA(counter) = (toc); [minDist,minDistIdx] = min(distsPointCenters); if minDist>radius % The point is not near to any CMCs or outliers numberOfOutliers = numberOfOutliers + 1; outliers.Centre(numberOfOutliers,:) = dataPoint; outliers.Count(numberOfOutliers,:) = 1; outliers.Life(numberOfOutliers,:) = 1; outliers.pointsIndices{numberOfOutliers,1} = counter; return; else if ismember(minDistIdx,1:numberOfcmcs) % The point is nearer to a CMC cmcs.Count(minDistIdx,:) = cmcs.Count(minDistIdx,:)+1; cmcs.Life(minDistIdx,:) = 1; cmcs.pointsIndices{minDistIdx,1} = [cmcs.pointsIndices{minDistIdx,1} counter]; if minDist>radius*0.5 % if data point is inside cluster shell % Update cluster centre to mean of samples cmcs.Centre(minDistIdx,:) = ... ((cmcs.Count(minDistIdx,:)-1)*cmcs.Centre(minDistIdx,:)+dataPoint)./cmcs.Count(minDistIdx,:); clusterChanged = minDistIdx; end else % The point is nearer to an outlier minDistIdx = minDistIdx - numberOfcmcs; outliers.Count(minDistIdx,:) = outliers.Count(minDistIdx,:)+1; outliers.Life(minDistIdx,:) = 1; outliers.pointsIndices{minDistIdx,1} = [outliers.pointsIndices{minDistIdx,1} counter]; if minDist>radius*0.5 % if data point is inside cluster shell % Update outlier centre to mean of samples outliers.Centre(minDistIdx,:) = ... ((outliers.Count(minDistIdx,:)-1)*outliers.Centre(minDistIdx,:)+dataPoint)./outliers.Count(minDistIdx,:); end % If an outlier becomes a CMC if outliers.Count(minDistIdx)>minThreshold numberOfcmcs = numberOfcmcs+1; cmcs.Centre(numberOfcmcs,:) = outliers.Centre(minDistIdx,:); cmcs.Count(numberOfcmcs,:) = outliers.Count(minDistIdx); cmcs.Life(numberOfcmcs,:) = 1; cmcs.pointsIndices{numberOfcmcs,1} = outliers.pointsIndices{minDistIdx}; cmcsGraph = cmcsGraph.addnode(1); clusterChanged = numberOfcmcs; % Remove the outlier outliers.Centre(minDistIdx,:) = []; outliers.Count(minDistIdx,:) = []; outliers.Life(minDistIdx,:) = []; outliers.pointsIndices(minDistIdx,:) =[]; end end end end % if a micro-cluster has changed and has enough data to not be noise then % Update graph if exist('clusterChanged','var') cmcsGraph = UpdateGraph(cmcsGraph,cmcs,clusterChanged,radius); end end
Raw Text
-
Vitality Mastery: Proven Practices for Peak Performance
4 min ago
-
FAMILY SINNERS - Naughty Babe Demi Hawks Finally Gets In Her Hot Step Uncle Derrick Pierce's Pa
11 min ago
-
Untitled
37 min ago
-
A redhead schoolgirl came to the guy's house
41 min ago
-
Untitled
1 hour ago
-
SG Mechanical Emergency AC Repair
1 hour ago
-
Big Butt Maya Farrell Swaps Oral Skills And Takes A Pussy Creampie
1 hour ago
-
zauran
1 hour ago
-
Untitled
1 hour ago
-
https://www.macombdaily.com/2024/03/27/the-growth-matrix-reviews-2024-legit-growth-matrix-or-hidden-
1 hour ago