Filter löschen
Filter löschen

My plot for directivity is not showing?

3 Ansichten (letzte 30 Tage)
Andrew Yip
Andrew Yip am 26 Feb. 2019
Kommentiert: Andrew Yip am 27 Feb. 2019
Hi guys,
I'm trying to make a plot of directivity for a given radiation intensity pattern (W/sr). However, for some reason my plot for directivity is not showing when I'm using the plot command. This is the code I have.
% Setting up variables theta and phi.
% phi is a given scalar. theta is an array from -pi to pi.
theta = -pi : pi/512 : pi;
phi = pi/2;
% function Pd
a = sin(2 * pi * sin(theta) * sin(phi)) ./ sin((pi/2) * sin(theta) * sin(phi));
pd = (abs(a)).^2;
% Calculating Prad to obtain directivity.
x = 0 : pi/1024 : pi;
fun = @(x) (abs(sin(2 * pi .* sin(x) * sin(pi/2)) ./ sin((pi/2) .* sin(x) * sin(pi/2)))).^2
q0 = integral(fun, 0, pi);
Prad = 2 * pi * q0;
% Calculating directivity. D = 4 * pi * U / Prad. In this example, U = pd
% (W / sr)
D = 4 * pi .* pd / Prad;
figure(1)
plot(theta,D)
xlabel(theta)
ylabel(D)
title('Directivity versus theta')
My figure 1 does not show a plot of D versus theta where I am expecting it... can anyone let me know or guide me as to why that is? Is it because my variable D (for directivity) is not an array as I think it is? D shows as a 1x1025 double when I run this code.Directivity Plot Issue.jpg
Even strangely, I was able to plot pd versus theta using the code below without any issues, in the same .m script file:
figure(1)
plot(theta,pd)
xlabel('theta')
ylabel('pd(theta, phi)')
title('pd versus theta')
So I'm confused as to why I can plot pd but not D... I appreciate any help or feedback on this. Thank you for your time!
UPDATE: My plot still does not show correctly when I run my code above (it only shows the title). But, when I right-click my theta and D variables on the workspace, and then use the Plot tab to plot, it does show a plot...theta versus D.jpg
So now I'm even more confused as to why my code doesn't show a plot when I run the script, but I can right-click my variables and get a plot through the plot tab...

Akzeptierte Antwort

Yasasvi Harish Kumar
Yasasvi Harish Kumar am 26 Feb. 2019
Bearbeitet: Yasasvi Harish Kumar am 26 Feb. 2019
Hi,
Your xlabel and ylabel need to be in quotes which is missing in your script.
% Setting up variables theta and phi.
% phi is a given scalar. theta is an array from -pi to pi.
theta = -pi : pi/512 : pi;
phi = pi/2;
% function Pd
a = sin(2 * pi * sin(theta) * sin(phi)) ./ sin((pi/2) * sin(theta) * sin(phi));
pd = (abs(a)).^2;
% Calculating Prad to obtain directivity.
x = 0 : pi/1024 : pi;
fun = @(x) (abs(sin(2 * pi .* sin(x) * sin(pi/2)) ./ sin((pi/2) .* sin(x) * sin(pi/2)))).^2
q0 = integral(fun, 0, pi);
Prad = 2 * pi * q0;
% Calculating directivity. D = 4 * pi * U / Prad. In this example, U = pd
% (W / sr)
D = 4 * pi .* pd / Prad;
figure(1)
plot(theta,D)
xlabel('theta')
ylabel('D')
title('Directivity versus theta')
This fixes your problem.
Regards
  1 Kommentar
Andrew Yip
Andrew Yip am 27 Feb. 2019
Yasasvi, indeed it does fix the problem! I missed the quotes, and adding them fixed the problem. Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by