亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zernfun.m

?? 演示zeinike多項式擬合的源程序
?? M
字號:
function z = zernfun(n,m,r,theta,nflag)
%ZERNFUN Zernike functions of order N and frequency M on the unit circle.
%   Z = ZERNFUN(N,M,R,THETA) returns the Zernike functions of order N
%   and angular frequency M, evaluated at positions (R,THETA) on the
%   unit circle.  N is a vector of positive integers (including 0), and
%   M is a vector with the same number of elements as N.  Each element
%   k of M must be a positive integer, with possible values M(k) = -N(k)
%   to +N(k) in steps of 2.  R is a vector of numbers between 0 and 1,
%   and THETA is a vector of angles.  R and THETA must have the same
%   length.  The output Z is a matrix with one column for every (N,M)
%   pair, and one row for every (R,THETA) pair.
%
%   Z = ZERNFUN(N,M,R,THETA,'norm') returns the normalized Zernike
%   functions.  The normalization factor sqrt((2-delta(m,0))*(n+1)/pi),
%   with delta(m,0) the Kronecker delta, is chosen so that the integral
%   of (r * [Znm(r,theta)]^2) over the unit circle (from r=0 to r=1,
%   and theta=0 to theta=2*pi) is unity.  For the non-normalized
%   polynomials, max(Znm(r=1,theta))=1 for all [n,m].
%
%   The Zernike functions are an orthogonal basis on the unit circle.
%   They are used in disciplines such as astronomy, optics, and
%   optometry to describe functions on a circular domain.
%
%   The following table lists the first 15 Zernike functions.
%
%       n    m    Zernike function           Normalization
%       --------------------------------------------------
%       0    0    1                                 1
%       1    1    r * cos(theta)                    2
%       1   -1    r * sin(theta)                    2
%       2   -2    r^2 * cos(2*theta)             sqrt(6)
%       2    0    (2*r^2 - 1)                    sqrt(3)
%       2    2    r^2 * sin(2*theta)             sqrt(6)
%       3   -3    r^3 * cos(3*theta)             sqrt(8)
%       3   -1    (3*r^3 - 2*r) * cos(theta)     sqrt(8)
%       3    1    (3*r^3 - 2*r) * sin(theta)     sqrt(8)
%       3    3    r^3 * sin(3*theta)             sqrt(8)
%       4   -4    r^4 * cos(4*theta)             sqrt(10)
%       4   -2    (4*r^4 - 3*r^2) * cos(2*theta) sqrt(10)
%       4    0    6*r^4 - 6*r^2 + 1              sqrt(5)
%       4    2    (4*r^4 - 3*r^2) * cos(2*theta) sqrt(10)
%       4    4    r^4 * sin(4*theta)             sqrt(10)
%       --------------------------------------------------
%
%   Example 1:
%
%       % Display the Zernike function Z(n=5,m=1)
%       x = -1:0.01:1;
%       [X,Y] = meshgrid(x,x);
%       [theta,r] = cart2pol(X,Y);
%       idx = r<=1;
%       z = nan(size(X));
%       z(idx) = zernfun(5,1,r(idx),theta(idx));
%       figure
%       pcolor(x,x,z), shading interp
%       axis square, colorbar
%       title('Zernike function Z_5^1(r,\theta)')
%
%   Example 2:
%
%       % Display the first 10 Zernike functions
%       x = -1:0.01:1;
%       [X,Y] = meshgrid(x,x);
%       [theta,r] = cart2pol(X,Y);
%       idx = r<=1;
%       z = nan(size(X));
%       n = [0  1  1  2  2  2  3  3  3  3];
%       m = [0 -1  1 -2  0  2 -3 -1  1  3];
%       Nplot = [4 10 12 16 18 20 22 24 26 28];
%       y = zernfun(n,m,r(idx),theta(idx));
%       figure('Units','normalized')
%       for k = 1:10
%           z(idx) = y(:,k);
%           subplot(4,7,Nplot(k))
%           pcolor(x,x,z), shading interp
%           set(gca,'XTick',[],'YTick',[])
%           axis square
%           title(['Z_{' num2str(n(k)) '}^{' num2str(m(k)) '}'])
%       end
%
%   See also ZERNPOL, ZERNFUN2.

%   Paul Fricker 11/13/2006


% Check and prepare the inputs:
% -----------------------------
if ( ~any(size(n)==1) ) || ( ~any(size(m)==1) )
    error('zernfun:NMvectors','N and M must be vectors.')
end

if length(n)~=length(m)
    error('zernfun:NMlength','N and M must be the same length.')
end

n = n(:);
m = m(:);
if any(mod(n-m,2))
    error('zernfun:NMmultiplesof2', ...
          'All N and M must differ by multiples of 2 (including 0).')
end

if any(m>n)
    error('zernfun:MlessthanN', ...
          'Each M must be less than or equal to its corresponding N.')
end

if any( r>1 | r<0 )
    error('zernfun:Rlessthan1','All R must be between 0 and 1.')
end

if ( ~any(size(r)==1) ) || ( ~any(size(theta)==1) )
    error('zernfun:RTHvector','R and THETA must be vectors.')
end

r = r(:);
theta = theta(:);
length_r = length(r);
if length_r~=length(theta)
    error('zernfun:RTHlength', ...
          'The number of R- and THETA-values must be equal.')
end

% Check normalization:
% --------------------
if nargin==5 && ischar(nflag)
    isnorm = strcmpi(nflag,'norm');
    if ~isnorm
        error('zernfun:normalization','Unrecognized normalization flag.')
    end
else
    isnorm = false;
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Compute the Zernike Polynomials
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Determine the required powers of r:
% -----------------------------------
m_abs = abs(m);
rpowers = [];
for j = 1:length(n)
    rpowers = [rpowers m_abs(j):2:n(j)];
end
rpowers = unique(rpowers);

% Pre-compute the values of r raised to the required powers,
% and compile them in a matrix:
% -----------------------------
if rpowers(1)==0
    rpowern = arrayfun(@(p)r.^p,rpowers(2:end),'UniformOutput',false);
    rpowern = cat(2,rpowern{:});
    rpowern = [ones(length_r,1) rpowern];
else
    rpowern = arrayfun(@(p)r.^p,rpowers,'UniformOutput',false);
    rpowern = cat(2,rpowern{:});
end

% Compute the values of the polynomials:
% --------------------------------------
y = zeros(length_r,length(n));
for j = 1:length(n)
    s = 0:(n(j)-m_abs(j))/2;
    pows = n(j):-2:m_abs(j);
    for k = length(s):-1:1
        p = (1-2*mod(s(k),2))* ...
                   prod(2:(n(j)-s(k)))/              ...
                   prod(2:s(k))/                     ...
                   prod(2:((n(j)-m_abs(j))/2-s(k)))/ ...
                   prod(2:((n(j)+m_abs(j))/2-s(k)));
        idx = (pows(k)==rpowers);
        y(:,j) = y(:,j) + p*rpowern(:,idx);
    end
    
    if isnorm
        y(:,j) = y(:,j)*sqrt((1+(m(j)~=0))*(n(j)+1)/pi);
    end
end
% END: Compute the Zernike Polynomials
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Compute the Zernike functions:
% ------------------------------
idx_pos = m>0;
idx_neg = m<0;

z = y;
if any(idx_pos)
    z(:,idx_pos) = y(:,idx_pos).*sin(theta*m(idx_pos)');
end
if any(idx_neg)
    z(:,idx_neg) = y(:,idx_neg).*cos(theta*m(idx_neg)');
end

% EOF zernfun

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级精品三级| 琪琪久久久久日韩精品| 国产精品乱人伦| 久久精品一区二区三区不卡牛牛| 日韩欧美精品三级| 日韩欧美中文字幕制服| 欧美一级国产精品| 日韩精品中文字幕一区二区三区| 91麻豆精品久久久久蜜臀| 欧美精选午夜久久久乱码6080| 欧美亚洲高清一区二区三区不卡| 日本韩国一区二区| 欧美三级视频在线播放| 在线日韩av片| 678五月天丁香亚洲综合网| 67194成人在线观看| 欧美mv日韩mv亚洲| 欧美国产日韩精品免费观看| 欧美国产1区2区| 日韩久久一区二区| 一个色在线综合| 日本aⅴ免费视频一区二区三区| 蜜桃视频免费观看一区| 国产美女视频一区| 99精品久久只有精品| 在线看国产一区| 欧美一区二区三区免费视频| 久久综合精品国产一区二区三区 | 精品第一国产综合精品aⅴ| 26uuu成人网一区二区三区| 国产欧美一区二区精品久导航| 欧美韩日一区二区三区| 一区二区视频在线看| 五月天欧美精品| 国产主播一区二区| aaa欧美大片| 欧美女孩性生活视频| 26uuu国产一区二区三区| 亚洲视频在线一区| 日韩av在线发布| www.成人网.com| 欧美日韩久久久| 久久免费精品国产久精品久久久久 | 欧美一区二区日韩| 欧美极品xxx| 亚洲成人一区在线| 国产成人午夜99999| 99久久精品国产毛片| 制服丝袜亚洲精品中文字幕| 久久久99久久精品欧美| 一区二区激情视频| 久久99国产精品久久99果冻传媒| 99久久婷婷国产精品综合| 欧美二区乱c少妇| 中文字幕av免费专区久久| 丝袜诱惑制服诱惑色一区在线观看| 国产一区二区不卡老阿姨| 色av成人天堂桃色av| 久久精品视频一区二区三区| 亚洲精品高清在线| 国产河南妇女毛片精品久久久| 欧美日韩亚州综合| 国产精品视频yy9299一区| 美腿丝袜亚洲色图| 色综合久久中文综合久久97| 久久久久久久精| 日韩中文字幕不卡| 91麻豆精品一区二区三区| 久久女同互慰一区二区三区| 亚洲成人激情自拍| 色综合欧美在线| 国产午夜精品久久| 美女在线视频一区| 欧美色网站导航| 一区在线中文字幕| 风流少妇一区二区| 久久亚洲影视婷婷| 九九热在线视频观看这里只有精品| 在线视频你懂得一区| 国产精品美女www爽爽爽| 精品一区二区三区在线观看 | 欧美日本韩国一区| 亚洲天堂精品视频| 成人性生交大片免费看中文网站| 在线电影院国产精品| 亚洲国产欧美日韩另类综合| 成人精品免费看| 久久久久久久综合| 国产精品一区一区| 久久一二三国产| 国内久久婷婷综合| 精品国产一区二区亚洲人成毛片| 日本三级亚洲精品| 欧美高清dvd| 亚洲电影在线播放| 欧美揉bbbbb揉bbbbb| 一区二区三区免费在线观看| 91一区一区三区| 亚洲天堂网中文字| 色88888久久久久久影院野外| 亚洲天堂久久久久久久| 91视频精品在这里| 亚洲人成在线观看一区二区| 99视频精品在线| 亚洲三级在线免费观看| 成人av免费网站| 亚洲人被黑人高潮完整版| 99国产一区二区三精品乱码| 最好看的中文字幕久久| 91蜜桃在线观看| 亚洲在线视频网站| 777欧美精品| 激情成人综合网| 久久精品亚洲国产奇米99| 成人午夜视频网站| 1000精品久久久久久久久| 99久久99久久精品免费观看 | 水蜜桃久久夜色精品一区的特点| 在线观看国产一区二区| 亚洲v日本v欧美v久久精品| 在线综合+亚洲+欧美中文字幕| 肉色丝袜一区二区| 精品999在线播放| 国产成人精品亚洲777人妖| 中文字幕电影一区| 色噜噜狠狠成人中文综合| 亚洲国产精品一区二区www | 天天亚洲美女在线视频| 欧美一级在线免费| 国产成人综合在线观看| 国产精品久久久99| 欧美亚洲国产一区在线观看网站| 日韩高清在线一区| 久久久国产一区二区三区四区小说| 成a人片亚洲日本久久| 亚洲成人三级小说| 亚洲精品一线二线三线无人区| 成人影视亚洲图片在线| 亚洲成人免费视| 日韩欧美国产综合| 99re热这里只有精品免费视频| 亚洲另类一区二区| 日韩欧美久久一区| 91一区二区在线| 青娱乐精品视频在线| 国产欧美一区二区精品久导航 | 国产三级一区二区三区| 日本高清不卡视频| 久久91精品久久久久久秒播| 中文字幕一区二| 日韩欧美国产高清| 99久久婷婷国产精品综合| 日本视频免费一区| 亚洲特级片在线| 欧美大片免费久久精品三p| 99精品视频一区| 黄色资源网久久资源365| 亚洲天堂av一区| 久久久亚洲精品石原莉奈| 欧美亚洲综合一区| 国产成a人亚洲精品| 轻轻草成人在线| 尤物av一区二区| 国产午夜精品福利| 日韩一区二区在线观看视频 | 国产精品福利av | 美女视频黄久久| 亚洲三级在线免费观看| 久久亚洲免费视频| 欧美剧情片在线观看| 99国产精品国产精品久久| 国产一区二区伦理片| 亚洲影视在线观看| 最新欧美精品一区二区三区| 日韩精品一区二区三区四区| 在线免费观看日本一区| 成人sese在线| 国产精品一区免费在线观看| 日韩精品一二三四| 亚洲图片欧美一区| 亚洲精品国产一区二区三区四区在线 | 久久久久99精品国产片| 日韩一区二区三区四区| 91麻豆精品一区二区三区| 丁香婷婷综合五月| 韩国v欧美v亚洲v日本v| 日韩专区在线视频| 亚洲国产一区二区视频| 亚洲欧美国产高清| 国产精品久久久久久久午夜片| 久久久久久99精品| 久久中文字幕电影| 日韩精品一区二区三区在线观看| 欧美久久婷婷综合色| 欧美日韩国产一级| 色哟哟一区二区三区| 91麻豆免费看| 日本韩国欧美在线| 欧美综合欧美视频| 欧美亚洲动漫制服丝袜|