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.

checkp(pesel_num)
function wynik = checkp(pesel_num)
%CHECKP   funkcja sprawdza poprawnosc numeru PESEL
%         na podstawie calego 11 cyfrowego numeru
%         zwraca wartosc 0 w przypadku poprawnego numeru
%
%   CHECKP(pesel_num)
%      pesel_num - 11 cyfrowy numer 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~=11
   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 + pesel_tab(11);
wynik = mod(pesel_sum,10);
if wynik==0
    disp('ok');
else
    wynik = 1;
    disp('!ok');
end

Contact us at files@mathworks.com