plot 1st order bessel derivative
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi all,
Can i ask if somebody can help me on why i got 'matrix dimension don't agree' thereby cannot get a plot for first order bessel derivative.
If i type 'diff(besselj(1,z),z)', i'd get 'besselj(0, z) - besselj(1, z)/z'
but then when i want to plot 'besselj(0, z) - besselj(1, z)/z' by typing:
format long
z = (0:1:100)';
a=besselj(0, z) - besselj(1, z)/z;
plot(z,a)
it'd give error as below:
??? Error using ==> minus
Matrix dimensions must agree.
Error in ==> Untitled at 4
a=besselj(0, z) - besselj(1, z)/z;
for some reason the second term gives 101x101 dimension which doesnt agree with the first term (101x1).
0 commentaires
Réponse acceptée
Matt Kindig
le 31 Juil 2012
I think you need to use element-wise division with the z:
a=besselj(0, z) - besselj(1, z)./z;
1 commentaire
Plus de réponses (1)
Walter Roberson
le 31 Juil 2012
besselj(1, z)/z is using the mrdivide operator ("/"), and so is the least-squares solution to X*z = besselj(1, z) . This will not be a vector.
If you want to construct the list of [besselj(1,K) / K] for K in 0 : 100, then you should use the rdivide arithmetic divide operator rather than the matrix divide operator:
besselj(1, z) ./ z
Voir également
Catégories
En savoir plus sur Special Functions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!