function [U] = cvcfu(U,i,sens)

%function [U] = cvcfu(U,i,sens)
%U matrice da cui cancellare le colonne 
%sens 1xvar=[ 1 5 8 12  23 30 31 32 33]
%sens vettore delle colonne da cancellare
%i indice del sensore di cui si fa l'identificazione da cancellare

           
 [r c]=size(U);
 %faccio serie di operazioni per essere robusto alla scrittura del vettore
 %sens
 sens=sort(sens);
 
 for j=1:length(sens)
    if sens(j)>c
       sens=sens(1:j-1);
       break
    end
 end
 %inverto il vettore
 sens=fliplr(sens);
 %controllo la presenza di doppioni
 for jj=1:length(sens)
     for j=2:length(sens)
         if sens(j-1)==sens(j)
            sens=cancel_y_from_U(sens,j);
            break
         end
     end
 end
 
%fase cancellazione da ricordarsi che ci stiamo muovendo a gambere

 iuj=0;  %per sapere se sono passato nel passaggio sens(j)=i
 jmi=0;  %per sapere se sono passato nel passaggio sens(j)<i
 
 for j=1:length(sens)
    if sens(j)> i
        U=cancel_y_from_U(U,sens(j));
    elseif sens(j)== i
        U=cancel_y_from_U(U,sens(j));
        iuj=1;
    elseif sens(j) < i
        if iuj==1
            U=cancel_y_from_U(U,sens(j));
        elseif iuj==0
            if jmi==0
                U=cancel_y_from_U(U,i);
                U=cancel_y_from_U(U,sens(j));
                jmi=1;
            elseif jmi==1
                U=cancel_y_from_U(U,sens(j));
            end
        end
    end
     
 end
 
 if iuj==0 && jmi==0
     U=cancel_y_from_U(U,i);
 end
 
end
