Several problems I have noticed:
a = 0.4;
f = 10^6;
w = 2*pi*f;%scalar no need for .
I0 = 1;
b = (0.4/2);
mu0 = 4 * pi * 1e-7;
e0 = 8.85e-12;
k = w*sqrt(mu0*e0);%scalar no need for .
theta = linspace(-pi/2,pi/2,100);%this must be a consistent size based on your equation, use linspace
phi = linspace(0:2*pi,100);%consistent size
xx = linspace(-1,1,100);%not sure what you are doing here but size is only 1
zz = xx;
[x,z] = meshgrid(xx,zz);%this is now a 100x100 matrix
for k=1:100%you have to keep the size consistent
Hx(k,:) = (((1j .* k .* a.^2 .* I0 .* cos(theta)) ./ (x.^2+(z(k,:)-b(k,:)).^2)) .* (1 + 1 ./ (1j .* k .* sqrt(x.^2+(z(k,:)-b(k,:)).^2))) .* exp(-1j .* k .* sqrt(x.^2+(z(k,:)-b(k,:)).^2))) .* sin(theta).*cos(phi);
Hz(k,:) = (((1j .* k .* a.^2 .* I0 .* cos(theta)) ./ (x.^2+(z(k,:)-b(k,:)).^2)) .* (1 + 1 ./ (1j .* k .* sqrt(x.^2+(z(k,:)-b(k,:)).^2))) .* exp(-1j .* k .* sqrt(x.^2+(z(k,:)-b(k,:)).^2))) .* cos(theta);
end
quiver(x,z,abs(Hx),abs(Hz))
I'm not sure if everyting is now correct, but you get the idea.