x = [1,6,9,13,2,8,7,4,11,5,3,10,12];
numGroups = 4; % 组的数目
xMax = max(x);
xMin = min(x);
boundries = xMin + (0:numGroups) * (xMax - xMin) / (numGroups - 1); % 组的边界
xGroup = zeros(size(x)); % 初始化
for group = 1:numGroups
loc = (x >= boundries(group)) & (x <= boundries(group + 1)); %在这个组的书的坐标
xGroup(loc) = group;
end
结果存在xGroup里
补充:
如果要按照你的那样输出,可以改成这样:
x = [1,6,9,13,2,8,7,4,11,5,3,10,12];
GroupName = ['A','B','C','D'];
numGroups = length(GroupName); % 组的数目
xMax = max(x);
xMin = min(x);
boundries = xMin + (0:numGroups) * (xMax - xMin) / (numGroups - 1); % 组的边界
xGroup = zeros(size(x)); % 初始化
for group = 1:numGroups
loc = (x >= boundries(group)) & (x <= boundries(group + 1)); %在这个组的书的坐标
xGroup(loc) = group;
end
xGroupName = GroupName(xGroup);
for ii = 1:length(x)
fprintf('%d : %s\n', x(ii), xGroupName(ii));
end
找本简单的书看看,kmeans算法比较简单,应该可以看懂,网络上及matlab自带的函数都有kmeans,输出为各个聚类的类中心,及每个样本属于哪个聚类,具体因人而异