why is my plot shows nothing?

17 views (last 30 days)
why is my plot shows nothing?
syms w
w=-1*10*pi:0.005:10*pi;
plot(w,sqrt(w.^2+w.^6)/(1+w.^4),'b');

Accepted Answer

John D'Errico
John D'Errico on 18 Mar 2018
Because you need to read the getting started tutorials for MATLAB? In 3 simple (truly basic) lines of code, I see 4 significant errors, some worse than others.
syms w
You do not need to define w as a sym, if you will then overwrite it with a double. So the syms reference is a waste of time. More importantly, it suggests that you do not understand how MATLAB works with variables, that the next line which assigns w completely ignores the previous use of syms for w. So this is an error of comprehension.
w=-1*10*pi:0.005:10*pi;
Use linspace here, NOT colon to create a vector. The final element will not be 10*pi if you use colon. -1*10*pi is also silly, since -10*pi is equivalent.
plot(sqrt(w,w.^2+w.^6)/(1+w.^4),'b');
Several problems in this last line, even though I cannot even guess what you are trying to write.
sqrt(w,w.^2+w.^6) is a meaningless expression. I cannot even guess what you want to do there.
You know enough to use the .^ operator when w is a vector. You also need to learn about the .* and ./ operators for vectors. They are equally valuable and equally important.
It is vaguely possible that you really wanted to write this:
plot(w,sqrt(w.^2+w.^6)./(1+w.^4),'b');
But that would be a complete and wild guess on my part, and I tend to be a poor guesser.
So it is time for you to read the documentation.
  1 Comment
geometry geometry
geometry geometry on 18 Mar 2018
Thanks! and sorry for my trivial mistakes; because I'm beginner in matlab.

Sign in to comment.

More Answers (2)

Birdman
Birdman on 18 Mar 2018
Edited: Birdman on 18 Mar 2018
Replace
plot(sqrt(w,w.^2+w.^6)/(1+w.^4),'b')
with
plot(sqrt(w.^2+w.^6)./(1+w.^4),'b')
Also,
syms w
line is irrelevant since in second line, you overwrite it with a numeric vector. Therefore delete it.

Rik
Rik on 18 Mar 2018
Because the command you are using has an incorrect syntax. You can't enter two input arguments to sqrt.
Also, you first declare w as a sym, but then overwrite it with a vector. You also didn't provide an x vector to plot (it is not strictly necessary, but it is good coding practice). And as a last remark, did you mean to use a matrix division inside that plot function?

Tags

Community Treasure Hunt

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

Start Hunting!