evaluate bessel with plot

2 views (last 30 days)
zamri
zamri on 4 Jul 2012
Hi, i wonder if anyone can help on why i receive this error "??? Error using ==> plot Vectors must be the same lengths"
I want to plot a function of combination of differentiation of bessel.
m=0; k=0; omega=0:0.02:10;
a = besselj(m,omega);
da = diff(a);
b = bessely(k,omega);
db = diff(b);
c = besselj(m,omega);
dc = diff(c);
d = bessely(k,omega);
dd = diff(d);
g=da.*dd-dc.*db;
plot(omega,g);
hold all;
plot(omega,0,'k');
axis([min(omega) max(omega) -100 100]);
thanks so much

Accepted Answer

Walter Roberson
Walter Roberson on 4 Jul 2012
Your arguments to the the bessel functions are numeric, so you are using the numeric bessel functions and getting numeric answers. diff() applied to a numeric vector is the difference function (not differentiation) and results in a vector that is one shorter than the original. You then attempt to plot the original-length omega vector against the one-shorter difference vector.

More Answers (1)

Community Treasure Hunt

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

Start Hunting!