Different order Bessel function in each column of an array

1 view (last 30 days)
Is there a way of calculating the array J, below, without using a loop?
X = 0:0.1:20;
J = zeros(5,201);
for i = 0:4
J(i+1,:) = besselj(i,X);
end

Accepted Answer

Steven Lord
Steven Lord on 19 Mar 2018
From the documentation, "If nu and Z are arrays of the same size, the result is also that size." Make arrays for nu and Z using meshgrid.
  1 Comment
David
David on 19 Mar 2018
Hi Steve,
Thank you for your reply.
Great suggestion.
For those interested, the code without the loop reads like:
X = 0:0.1:20;
nu = 0:4;
XX = repmat(X,[length(0:4),1]);
nuu = repmat(0:4,[length(X),1])';
JJ = besselj(nuu,XX);

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!