MATLAB Answers

HELP! My for loop code won't produce a line on the graph I plot

7 views (last 30 days)
Aaron Clewer
Aaron Clewer on 10 Mar 2020
Commented: ME on 10 Mar 2020
When I run my code, results will appear but my results just won't show on the graph:
K = 1
i = sqrt(-1);
n=0;
for w = 0.1:1000
n=n+1;
A(n) = w;
G(n) = K/((i*w)*((i*w)+1.71)*((i*w)+100));
end
M(n) = abs(G(n));
F(n) = 20*log(M(n));
semilogx(w,F)

  0 Comments

Sign in to comment.

Answers (2)

Ameer Hamza
Ameer Hamza on 10 Mar 2020
Edited: Ameer Hamza on 10 Mar 2020
You were just plotting a single point. Check the indexing of variables after the for loop.
K = 1;
i = sqrt(-1);
n=0;
W = 0.1:1000;
for w = W
n=n+1;
A(n) = w;
G(n) = K/((i*w)*((i*w)+1.71)*((i*w)+100));
end
M = abs(G);
F = 20*log(M);
semilogx(W,F)

ME
ME on 10 Mar 2020
I'm not 100% sure but I'd guess you want the last line to be:
semilogx(A,F)
because otherwise everything is plotting at the same value on the x-axis.

  2 Comments

Aaron Clewer
Aaron Clewer on 10 Mar 2020
This ends up giving me the same value at the x-axis as the previous code. Thank you for the help though
ME
ME on 10 Mar 2020
Plots over the whole range of the x-axis for me. I guess the issue is that the line is right along the edge of the figure window. If you change the view of the axes or the axes limits then you'll be able to see the line.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!