adj_newbt3aa.m
来自「beamlet变化的工具箱」· M 代码 · 共 66 行
M
66 行
function X=adj_newbt3aa(B)
sz=size(B);
n=sz(4);
m=n/2;
if sz(1)==n
BigB=zeros(2*n,2*n,n,n);
BigB(m+1:m+n,m+1:m+n,:,:)=B;
B=BigB;
clear BigB
end
X=zeros(2*n,2*n,n);
m=n/2;
s=1/n-1:2/n:1-1/n;
x=0.5:1:n-0.5;
for k=1:n
for syi=1:n
for szi=1:n
if nnz(B(:,:,syi,szi))>0
y1=s(syi)*(x(k)-m)+0.5;
fy1=floor(y1);
alphay=y1-fy1;
sty=mod(2*n-fy1,2*n);
PsykRsysz = [B( (sty+1) :2*n,:,syi,szi);B( 1: (sty),:,syi,szi)];
if alphay<abs(s(syi)/2)
b=2*alphay/abs(s(syi));
sty=mod(2*n-fy1+1,2*n);
PsykRsysz=b*PsykRsysz+(1-b)*[B( (sty+1) :2*n,:,syi,szi);B( 1: (sty),:,syi,szi )];
elseif alphay>(1-abs(s(syi))/2)
b=2*(1-alphay)/abs(s(syi));
sty=mod(2*n-fy1-1,2*n);
PsykRsysz=b*PsykRsysz+(1-b)*[B((sty+1) :2*n,:,syi,szi);B( 1: (sty),:,syi,szi )];
end
z1=s(szi)*(x(k)-m)+0.5;
fz1=floor(z1);
alphaz=z1-fz1;
stz=mod(2*n-fz1,2*n);
PsykRsyszPszk = [PsykRsysz(:, (stz+1) :2*n),PsykRsysz(:, 1: (stz))];
if alphaz<abs(s(szi)/2)
b=2*alphaz/abs(s(szi));
stz=mod(2*n-fz1+1,2*n);
PsykRsyszPszk=b*PsykRsyszPszk+(1-b)*[PsykRsysz(:, (stz+1) :2*n),PsykRsysz(:, 1: (stz))];
elseif alphaz>(1-abs(s(szi))/2)
b=2*(1-alphaz)/abs(s(szi));
stz=mod(2*n-fz1-1,2*n);
PsykRsyszPszk=b*PsykRsyszPszk+(1-b)*[PsykRsysz(:, (stz+1) :2*n),PsykRsysz(:, 1: (stz))];
end
X(:,:,k)=X(:,:,k)+PsykRsyszPszk;
end
end
end
end
X=X(m+1:m+n,m+1:m+n,:);%% 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 + -
显示快捷键?