-1

我正在编写一个用于微芯片设计的程序,但它给出了一个错误。有人可以帮我纠正吗?这是我的代码:

clc;
clear all;
close all;
f=2.4*10^9;
er=4.4;
h=1.6*10^-3;
c=3*10^8;
w=c/(2*f*((er+1)/2)^(0.5));
eef=((er+1)/2+((er+1)/2)*(1+(12*h/w)))^-0.5;
lef=c/(2*f*(eef^0.5));
dl=(0.412*h)*(eef+0.3)*((w/h+0.264)/((eef-0.258)*((w/h)+0.8)));
l=lef-(2*dl);
lg=6*h+l;
wg=6*h+w;
%microstrip line design
zo=50;
A=(zo/99)*sqrt((er+1)/2)+(((er-1)/(er+1))*(0.23+(0.11*er)));
B=(377*pi)/(2*zo*sqrt(er));
wbd=(8*exp(A)/exp(2*(A))-2);
if(wbd>2)
    wbd=(2/pi)*((B-1-log(2*B-1)+((er-1)/(2*er))*log(B-1)+0.39-(0.61/er)));
end
w=wbd*h;
ko=(2*pi*f)/c;
Ll=pi/(sqrt(eef)*ko);
c=3*10^8;
la=c/f;
b=(2*pi*sqrt(er))/(la);
i=1;
for w=1:0.1:38
    i=i+1;
    rin(1,i)=round(((120*la)^2)+(((377*h)/(sqrt(er))*w*10^-3)^2)*(tan(b*w*10^-3)^2)/(240*w*10^-3*la)*(1+(tan(b*w*10^-3)^2)));
    if(rin(1,i)>45 && rin(1,i)<50)
        n=i;
    end
end
feed=n*0.1;
l=l*10^3;
w=w*10^3;
lg=lg*10^3;
wg=wg*10^3;
wl=wl*10^3;
Ll=Ll*10^3;
display(l);
display(w);
display(lg);
display(wg);
display(wl);
display(Ll);
display(feed);

错误如下:

??? Undefined function or variable 'n'.

Error in ==> Antenna at 37
feed=n*0.1;
4

1 回答 1

1

n 只有一个声明,它在 if 语句中。显然,这个声明从未达成。因此,要么确保达到声明,要么在稍后在代码中引用它之前提供一些默认的 n 定义。

于 2013-09-16T16:43:47.260 回答