如何针对值范围执行此功能?

How can I execute this function for range of values?

我有这个功能 其中 f 有值 (18 19 20 21 22),我应该为 f 的每个值计算函数值并绘制每个值。 我尝试将 f 作为向量 18:22,但它给出了从 1 到 22 的结果。当我使用 for 循环时,结果相同。我的代码如下,如何修改它以仅取范围内的值?

clc
fc=20;
theta=80;
N=16;
f=18:22;
g_m(f)=(sin((N*pi/2).*sin(theta).*(f/fc-1)))./sqrt(N).*(sin(pi/2).*(f/fc-1));
g_p(f)=exp(1j*0.5*(N-1).*pi*sin(theta).*(f/fc-1));
gain(f)=g_m(f).*g_p(f);
figure(1);
plot(f,g_m(f));

我相信这应该能为您提供足够的信息:

f = 5:7;
g(f)= [2, 2, 5]
g =  
   0   0   0   0   2   2   5