这个代码主要针对,对不同类数据,加标签整合
数据为 mnist_all.mat (因为时间隔得有点久我忘了当初下载网站)
我主要用在GNMF相关处理中,其中对2D Hela image data数据也是类似加标签,希望对你有帮助
%对MNIST数据的处理
% 整合为一个数据矩阵
%在因为每张图是28X28=784,所以每一行代表一张图
%需要从所有图中选取500样本,每类选取50个样本
load('mnist_all.mat');
% load('usps_all.mat');
fea=zeros(500,784);
gnd1=ones(50,1); %第一类,全部标记为1
gnd=gnd1;
for i=2:10
gnd=[gnd;i*gnd1]; %gnd 标记;里面第一类标记1,依次内推到第十类标记为10.
end
%下面开始构建处理矩阵
%每个样本选50个样本(随机)
t=0;
for i=1:10
st=['test',num2str(i-1)]; %选取不同的test,然后从中随机提取50个样本;例test0
test=eval(st); %将字符串对应的矩阵取值出来;例将test0,对应的所以样本。
for j=1:50
t=t+1;
fea(t,:)=test(i*j,:);
end
end
其测试时需要构建标签 (上面一个代码就是Matrix_adt.m)
% 先运行Matrix_adt.m,构建标签gnd,与矩阵fea
nClass=10;
K=10;
label = litekmeans(fea,K,'Replicates',20);
[mFea,nSmp]=size(fea);
labelA=[];
labelA=[(1:mFea)',label];
A=[];
for i=1:K