function z = zern(r,a) rsq = r.*r; z(:,1)= ones(size(rsq)); z(:,2)= polyval([2 -1],rsq); z(:,3)= polyval([6 -6 1],rsq); z(:,4)= polyval([20 -30 12 -1],rsq); z(:,5)= polyval([70 -140 90 -20 1],rsq); z(:,6)= polyval([252 -630 560 -210 30 -1],rsq); z(:,7)= polyval([924 -2772 3150 -1680 420 -42 1],rsq); if (nargin<2) return; end for i=1:7 z(i,:) = a(i)*z(i,:); end