Azzera filtri
Azzera filtri

why is my plot shows nothing?

2 visualizzazioni (ultimi 30 giorni)
geometry geometry
geometry geometry il 18 Mar 2018
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');

Risposta accettata

John D'Errico
John D'Errico il 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 Commento
geometry geometry
geometry geometry il 18 Mar 2018
Thanks! and sorry for my trivial mistakes; because I'm beginner in matlab.

Accedi per commentare.

Più risposte (2)

Birdman
Birdman il 18 Mar 2018
Modificato: Birdman il 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 il 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?

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by