程序代码: [选择]featurel=length(Y_trainone)-1;%Y_trainone为1109*18的矩阵
grankY_trainone=single(Y_trainone);
tempsumweight=single(ones(1,featurel));
for k=1:featurel
dataset1=grankY_trainone(1:k,:);%取前k行分布,gpu不支持
dataset2=grankY_trainone(k+1:length(feature),:);%取后面的分布
tempsumweight(k)=K_L_sum_dataset_gpueasy(dataset1)+K_L_sum_dataset_gpueasy(dataset2);%显示
end
klsumdis=single(tempsumweight);
程序代码: [选择]function kl_sum=K_L_sum_dataset_gpueasy(dataset2)%
[rows cols]=size(dataset2);
if(rows==1)
kl_sum=0;return ;
end
dataset=single(dataset2);
meandataset1=mean(dataset);
meandataset=repmat(meandataset1,rows,1);
gdata3=dataset.*log(dataset./meandataset);
kl_sum=sum(sum(gdata3));
end%function
程序代码: [选择]featurel=length(Y_trainone)-1;%Y_trainone为1109*18的矩阵
grankY_trainone=gsingle(Y_trainone);
tempsumweight=gsingle(ones(1,featurel));
for k=1:featurel
dataset1=grankY_trainone(1:k,:);%取前k行分布,gpu不支持
dataset2=grankY_trainone(k+1:length(feature),:);%取后面的分布
tempsumweight(k)=K_L_sum_dataset_gpueasy(dataset1)+K_L_sum_dataset_gpueasy(dataset2);%显示
end
klsumdis=single(tempsumweight);为神马第二种方法反而比第一种慢呢?GPU没有加速么