function [RulerA,RulerB]=splitVec(Vec)
%拆分Vec为RulerA->RulerB(RulerA、RulerB非零)
%此函数只拆分Vec为 多—>少 的映射 如果需要 少—>多 修改第一个循环为 for sec=(L-1):-1:1 并去掉 L>2 与 L==2
RulerA=[];
RulerB=[];
index=find(Vec>0);
L=length(index);
if L>2
for sec=(L-1):-1:floor((L+1)/2)
secIndex=nchoosek(index,sec);
[g,h]=size(secIndex);
for k=1:g
firstIndex=secIndex(k,:);
tempA=zeros(1,length(Vec));
tempA(firstIndex)=1;
tempB=Vec-tempA;
RulerA=[RulerA;tempA];
RulerB=[RulerB;tempB];
end
end
end
if L==2
secIndex=index(1);
tempA=zeros(1,length(Vec));
tempA(secIndex)=1;
tempB=Vec-tempA;
RulerA=[RulerA;tempA];
RulerB=[RulerB;tempB];
end