gain.m

来自「数据仓库中」· M 代码 · 共 39 行

M
39
字号
function r = gain(s,wind)
%分组,结构保存成(value,num)和svalue 
temp = size(wind);
total_num = temp(1);
%初始化p
p(1,1) = wind(1);
p(1,2) = 1;
s1(1,1) = s(1);

for i = 2:1:total_num
   p_length = size(p);
   is_find = 0;
   
   

   for j = 1:1:p_length(1)
        if(wind(i)==p(j,1))
           p(j,2) = p(j,2)+1;          
           eval(['temp_s_size = size(s' num2str(j) ');']);
           eval(['s' num2str(j) '(' num2str(temp_s_size(1)) '+1,1)=' num2str(s(i)) ';']);
           is_find = 1;
           break;
        end
   end
   if(is_find==0)
        p(p_length(1)+1,1) = wind(i);
        p(p_length(1)+1,2) = 1;
        eval(['s' num2str(p_length(1)+1) '(1,1) = ' num2str(s(i)) ';']);
   end
end
%分组结束,开始计算
r_plus = 0;
p_length = size(p);

for i = 1:1:p_length(1)
   eval(['temp = s' num2str(i) ';']);
   r_plus = r_plus + (p(i,2)/total_num)*entropy(temp); 
end
r = entropy(s)-r_plus;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?