from Magnetic Field for a Loop by Teliban Iulian
Magnetic field for a loop off axis.

[Bx,Br]=m_field(i,a,x0,r0,xmin,rmin,xmax,rmax,step)
function [Bx,Br]=m_field(i,a,x0,r0,xmin,rmin,xmax,rmax,step)
%%%%%%%%%%%%%%%%%%%%%%%
% [Bx,Br]=m_field(i,a,x0,r0,xmin,rmin,xmax,rmax)
% Bx - axial comp. of mag. field
% Br - radial comp. of mag. field
% i=coil current;
% a=coil radius;
% x0, y0 - coil coordinate
% xmin,ymin,xmax,ymax - interest domain for magnetic field
% succes!
% 
% created by
% Iulian Teliban
%%%%%%%%%%%%%%%%%%%%%%%
miu0=4*pi*10^-7;
B0=(i*miu0)/(2*a);
in1=1;
for x=(xmin-x0):step:(xmax-x0)
    in2=1;
    for r=(rmin-r0):step:(rmax-r0)
        if (r~=0)
            al=abs(r/a);
            be=abs(x/a);
            ga=(x/r);
            q=((1+al)^2+be^2);
            k=sqrt(4*al/q);
            [K,E] = ellipke(k^2);
            Bx(in1,in2)=B0*(1/(pi*sqrt(q)))*(E*(1-al^2-be^2)/(q-4*al)+K);
            Br(in1,in2)=B0*(ga/(pi*sqrt(q)))*(E*(1+al^2+be^2)/(q-4*al)-K);            
        else
            Bx(in1,in2)=0;
            Br(in1,in2)=0;
        end
        X(in1,in2)=x;
        R(in1,in2)=r;
        in2=in2+1;
    end
    in1=in1+1;
end
s=size(Bx);
for i=2:s(1)-1
    for j=2:s(2)-1
        if (Bx(i,j)==0 & Br(i,j)==0)
            Bx(i,j)=1/6*(Bx(i-1,j-1)+Bx(i-1,j+1)+Bx(i,j-1)+Bx(i,j+1)+Bx(i+1,j-1)+Bx(i+1,j+1));
            Br(i,j)=1/6*(Br(i-1,j-1)+Br(i-1,j+1)+Br(i,j-1)+Br(i,j+1)+Br(i+1,j-1)+Br(i+1,j+1));
        end
    end
end
        
        
        

Contact us