matlab 利用其层次聚类,想把聚类后的每个类的行号输出到txt文件中

输入文件是一个1000X500的0/1矩阵,利用层次聚类后,聚成5类,想要把每个类的行号依次存入一个txt文件中或者不同的5个txt文件。下面是尝试存入一个txt文件中,但是我实现的方法不知道哪里错了,没有成功。希望前辈帮帮忙,Thanks♪(・ω・)ノ

[code]

clear all
close all
clc
G = 1;%文件个数
N = 5;%聚类数
for k = 1:G
filename1 = strcat(['p' num2str(k) '.txt']);
in = importdata(filename1);
D = pdist2(in,in);%求行与行之间欧式距离
C = linkage(D,'average');%开始聚类
HC = cluster(C, N); %划分聚类为N类

out = strcat(['nhc' num2str(k) '.txt']);
fid = fopen(out,'a'); 

for i = 1:N %把聚类后的每一类的行坐标存入txt中
HCi = find(HC == i);
HCI = HCi';
fprintf(fid,'d% ',HCI);
fprintf(fid,'\n');
end

fclose(fid);
end

[/code]

 

结果输出了5个d,txt文件像下面一样:

d

d

d

d

d


慕的地10843
浏览 753回答 1
1回答

偶然的你

我找了半天哪里不对劲,最后发现fprintf(fid,'d% ',HCI);这个里面是 %d 啊,少年。你写成了 d%(手动加粗)
打开App,查看更多内容
随时随地看视频慕课网APP