Hi,
Thanks for providing these files to the comunity !
However, did you check the othogonality of the functions created?
It seems to me that something's wrong there.
I generated 2 polynoms like it is shown in the doc :
z(idx) = zernfun(3,1,r(idx),theta(idx));
z2(idx) = zernfun(4,0,r(idx),theta(idx));
When I check the orthogonality by simply doing :
sum(sum(z(idx).*z2(idx)))
the result is not 0.
Am I doing someting wrong or is there a pb here?
Thanks in adavnce

Comment only

26 Mar 2013

Zernike polynomials
Zernike polynomials and functions (orthogonal basis on the unit circle).

12 Jun 2012 @JUAN CARDENAS
n = floor((-1+sqrt(1+8*p))/2);
m=-(n-2*p+n.*(n+1));
Very good solution for using any p but
I think you were missing a '-'sign for your definition of m. (can be seen when plotting the Zernike-Polynomials)

Comment only

12 Jun 2012

Zernike polynomials
Zernike polynomials and functions (orthogonal basis on the unit circle).

Thank you Paul.
An update for enabling any P order, in zernfun2, instead of:
n = ceil((-3+sqrt(9+8*p))/2);
m = 2*p - n.*(n+2);
change it by:
n = floor((-1+sqrt(1+8*p))/2);
m=n-2*p+n.*(n+1);

Comment only