cp_sensorio_v000

function [dout din]=cp_sensorio(data, bounind, val_set,C)
nobs=size(bounind,1);
nv=size(data,1);

if (isempty(C)) %not a compulsory input
    C=eye(nv);
end

dout=zeros(nv,nobs);
din=zeros(nv,nobs);

for in=1:nobs
    dout(:,in)=mean(data(:,bounind(in,1):bounind(in,2)),2);
    din(:,in)=round2set(C*dout(:,in),val_set);
end


function rvec=round2set(vec, set)
nset=length(set);
nvec=size(vec,1);
rvec=zeros(nvec,1);
for in1=1:nvec
    dval=abs(vec(in1)-set(1));
    val=set(1);
    for in2=1:nset
        if abs(vec(in1)-set(in2))<dval
            val=set(in2);
            dval=abs(vec(in1)-set(in2));
        elseif abs(vec(in1)+set(in2))<dval
            val=-set(in2);
            dval=abs(vec(in1)+set(in2));
        end
    end
    rvec(in1)=val;
end