Output = zeros(500,180,3);
A1 = reshape(A,1,size(A,2),[]);
for ii = 1:numel(B)
Output(ii,:,:) = besselj(B(ii),A1);
end
other way
x = repmat(B(:),[1 fliplr(size(A))]);
y = repmat(permute(A,[3 2 1]),numel(B),1);
Output = besselj(x,y);
or
Output = bsxfun(@(x,y)besselj(x,y),B(:),repmat(permute(A,[3 2 1]),numel(B),1));
and with ndgrid:
s = size(A);
[ii,jj,k] = ndgrid(B,1:s(2),1:s(1));
Output = besselj(ii,A(sub2ind(s,k,jj)));
Best Answer