MATLAB Answers

Matlab graph not showing

9 views (last 30 days)
Sander Grosemans
Sander Grosemans on 19 Apr 2021 at 20:34
Commented: Star Strider on 19 Apr 2021 at 22:41
clear;
close all;
s1=0.535*exp(1i*2*pi/3); s2=0.535*exp(1i*pi); s3=0.535*exp(1i*4*pi/3);
a1=-0.268-0.154*1i; a2=0.535; a3=-0.268+0.154*1i;
w=linspace(0,pi,200);
H1=a1./(2*((1-exp(-1i*w))/(1+exp(-1i*w)))-s1);
H2=a2./(2*((1-exp(-1i*w))/(1+exp(-1i*w)))-s2);
H3=a3./(2*((1-exp(-1i*w))/(1+exp(-1i*w)))-s3);
H=H1+H2+H3;
subplot(1,2,1);
plot(w/pi,abs(H));
ylabel('abs(H)');
xlabel('w/pi (rad/cycle)');
subplot(1,2,2);
plot(w/pi,20*log10(abs(H)));
ylabel('dB');
xlabel('w/pi (rad/cycle)');
My graph above gives me 2 blank graphs when I run the code and I don't know why, can anyone that is more experienced with matlab tell me why? Thanks in advance
  1 Comment
Sander Grosemans
Sander Grosemans on 19 Apr 2021 at 20:53
I found it has to do that H is just a value, while it is supposed to be a double. But I still don't know how to fix it

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 19 Apr 2021 at 21:27
Use element-wise division (./) instead of (/) and it works —
s1=0.535*exp(1i*2*pi/3); s2=0.535*exp(1i*pi); s3=0.535*exp(1i*4*pi/3);
a1=-0.268-0.154*1i; a2=0.535; a3=-0.268+0.154*1i;
w=linspace(0,pi,200);
H1=a1./(2*((1-exp(-1i*w))./(1+exp(-1i*w)))-s1);
H2=a2./(2*((1-exp(-1i*w))./(1+exp(-1i*w)))-s2);
H3=a3./(2*((1-exp(-1i*w))./(1+exp(-1i*w)))-s3);
H=H1+H2+H3;
subplot(1,2,1);
plot(w/pi,abs(H));
ylabel('abs(H)');
xlabel('w/pi (rad/cycle)');
subplot(1,2,2);
plot(w/pi,20*log10(abs(H)));
ylabel('dB');
xlabel('w/pi (rad/cycle)');
See the documentation on Array vs. Matrix Operations for an extended discussion. .
  2 Comments
Star Strider
Star Strider on 19 Apr 2021 at 22:41
As always, my pleasure!
I wish you and your family the same!

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!