newbt3aaa.m

来自「beamlet变化的工具箱」· M 代码 · 共 55 行

M
55
字号
function B=newbt3aaa(X)
n=length(X);
B=zeros(n,n,n,n);
m=n/2;
BigX=zeros(2*n,2*n,n);
BigX(m+1:n+m,m+1:m+n,:)=X;
clear X
s=1/n-1:2/n:1-1/n;
x=0.5:1:n-0.5;
for syi=1:n
    for szi=1:n
        for k=1:n
            y1=s(syi)*(x(k)-m)+m+0.5;
            fy1=floor(y1);
            alphay=y1-fy1;
            PsykAk = BigX(fy1+1:fy1+n,:,k);
            if alphay<abs(s(syi)/2)
                b=2*alphay/abs(s(syi));
                PsykAk=b*PsykAk+(1-b)*BigX(fy1:fy1+n-1,:,k);
            elseif alphay>(1-abs(s(syi))/2)
                b=2*(1-alphay)/abs(s(syi));
                PsykAk=b*PsykAk+(1-b)*BigX(fy1+2:fy1+n+1,:,k);
            end
            z1=s(szi)*(x(k)-m)+m+0.5;
            fz1=floor(z1);
            alphaz=z1-fz1;
            PsykAkPszk =PsykAk(:,fz1+1:fz1+n);
            if alphaz<abs(s(szi)/2)
                b=2*alphaz/abs(s(szi));
                PsykAkPszk=b*PsykAkPszk+(1-b)*PsykAk(:,fz1:fz1+n-1);
            elseif alphaz>(1-abs(s(szi))/2)
                b=2*(1-alphaz)/abs(s(szi));
                PsykAkPszk=b*PsykAkPszk+(1-b)*PsykAk(:,fz1+2:fz1+n+1);
            end
            B(:,:,szi,syi)=B(:,:,szi,syi)+PsykAkPszk;
        end
    end
end


%% Part of BeamLab Version:200% Built:Friday,23-Aug-2002 00:00:00% This is Copyrighted Material% For Copying permissions see COPYING.m% Comments? e-mail beamlab@stat.stanford.edu%%% Part of BeamLab Version:200% Built:Saturday,14-Sep-2002 00:00:00% This is Copyrighted Material% For Copying permissions see COPYING.m% Comments? e-mail beamlab@stat.stanford.edu%

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?