No BSD License  

Highlights from
PESEL number validation

from PESEL number validation by Michal Bok
Checking PESEL number, and creating 11. digit of PESEL based on first 10 digits.

findp(pesel_num)
function pesel_tab = findp(pesel_num)
%FINDP   funkcja generuje 11. cyfre numeru PESEL
%        na podstawie pierwszych 10 cyfr
%        jako wynik zwraca poprawny numer PESEL
%
%   FINDP(pesel_num)
%      pesel_num - 10 pierwszych cyfr numeru PESEL
%
%   Copyright  2008 Micha Bok, 156589
%
% algorytm: http://pl.wikipedia.org/wiki/PESEL
pesel_str = num2str(pesel_num);
pesel_len = length(pesel_str);
pesel_tab = 0;
if pesel_len~=10
   return
end
for char=1:pesel_len;
    pesel_tab(char) = str2num(pesel_str(char));
end;
pesel_sum_1 = pesel_tab(1)*1 + pesel_tab(2)*3 + pesel_tab(3)*7 + pesel_tab(4)*9 + pesel_tab(5)*1;
pesel_sum_2 = pesel_tab(6)*3 + pesel_tab(7)*7 + pesel_tab(8)*9 + pesel_tab(9)*1 + pesel_tab(10)*3;
pesel_sum = pesel_sum_1 + pesel_sum_2;
for i=0:9
    wynik = mod(pesel_sum+i,10);
    if wynik==0
       pesel_tab(11) = i;
       return
    end
end

Contact us at files@mathworks.com