限制ezpolar图中角度θ的值

时间:2018-02-14 09:19:07

标签: matlab

我正在尝试绘制如下图所示的函数:

enter image description here

where the red curve denote for V = 200*1.6*1e-22the blue curve denotes for V = 285*1.6*1e-22

clear all
close all
clc
syms phi
l = 50*1e-9;
D   = 200*1e-9;
E  = 80*1.6*1e-22;
v  = 1e+6;
h  = 6.626*1e-34/(2*pi);
V  = 200*1.6*1e-22;
ky = (2*pi/l).*sin(phi);

q_x = sqrt((E - V).^2./((h*v).^2 - ky.^2));

% vpa(q_x,5)
T = cos(phi).^2./(1 - cos(q_x.*D).^2.*sin(phi).^2);

ezpolar(T)

效果很好,但我只想在-90 < phi < 90之间显示情节,我试过ezpolar(T,[-pi/2 pi/2])它给出了区域-90到90的情节,但空区域也出现了。如何删除没有情节的左半半圆形区域。

1 个答案:

答案 0 :(得分:2)

假设您要评估(x,y)时间间隔x=(-1,1)y(-1,1)中的功能,可以使用功能区定义XY值的网格meshgrid

修改

更新了对surf的调用(参见Hunter Jiang的评论)

a=0.000000000142
X=[-1:.1:1];
Y=X;
[x,y]=meshgrid(X,Y);
z=2*cos(sqrt(3).*y.*a) + 4*cos((sqrt(3).*y.*a)/2).*cos((3.*x.*a)/2) - 1;
%surf(z)
surf(x,y,z)

然后您可以使用函数surf绘制结果。