📄 hk.asv
字号:
function HK(Sample1,Sample2);
n1=size(Sample1);
for i=1:n1(1)
ExtendSample1(i,:)=[Sample1(i,:) 1]; %样本1分量增广化,训练样本增加分量1
end;
n2=size(Sample2);
for i=1:n2(1)
ExtendSample2(i,:)=[Sample2(i,:) 1]; %样本2分量增广化,训练样本增加分量1
end;
ExtendSample2=-1.*ExtendSample2; %训练样本2乘以-1
Sample=[ExtendSample1;ExtendSample2];
n=size(Sample);
%求伪逆
FInvSample=inv(Sample'*Sample)*Sample';
e=ones(1,n(1))';
count=0;
%while e~=zeros(1,n(1))'||max(e)<0||count==100, %终止循环条件
while min(e)>0||count~=100, %终止循环条件,e(k)等于零种植循环,e(k)大于零继续下步,e(k)各份量均为
b=ones(1,n(1))';%余量矢量赋初值
p=1;%赋P=1
w=FInvSample*b;
e=Sample*w-b;
if min(e)>0
w=w+p*FInvSample*abs(e);
b=b+p*(abs(e)+e);
end;
count=count+1; %%%将循环次数控制在100以内
end;
Sample
w
e
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -