24小时热门版块排行榜    

查看: 519  |  回复: 8
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

jwye

铁虫 (初入文坛)

[交流] 【求助】请各位帮忙看看这个Matlab程序的问题出在哪里?谢谢!【已完成】

主要是实现E=exp^i*psai(j)+exp^i*psai(j)+exp^i*psai(j)+……+exp^i*psai(j)其中psai(j)=dr*cos(theta)+delta(j);其中i表示虚数;j的值为1到n;dr是一个常数;theta是0:360;delta(j)也是一个常数,不过此常数对于不同的j可能不同(所以对应不同的j,psai(j)值也不同),此常数通过load导入,就是通过文件e导入。
按以下程序算出来的结果中,E向量里的值是相同的,但此结果是不对的。问题可能在绿色部分,但我搞不懂(也许下面这个程序的思路本来就是错的!),请各位帮忙分析下,非常感谢!

n=9; %e文件中的数据个数;
c=3e8;
f=8.58e8; %频率
number_theta=10; %将2*pi分为100段;
a=2*pi/number_theta;
lambda=c/f; %波长
d=0.29; %间距
dr=2*pi*d/lambda; %电距离
load C:\MATLAB7\work\e.txt %导入初相位,e文件的内容就是n个数据单;
delta=e
sum=zeros(number_theta+1,1)
M=1
for num=1:1:number_theta+1
    for j=1:n
        psai(j)=dr*cos((num-1)*a)+delta(j)
        sum(M)=sum(M)+exp(psai(j)*sqrt(-1))
    end
    M=M+1;
end

E=abs(sum)
%后面的程序暂时不看;
%for j=1:1number_theta+1)
%    E(j)=abs(sum(j));
%    PolarXY=10*log10(E(j));
%end

%for j=1:1number_theta+1)
    %theta=0:a:2*pi
    %plot(a*(j-1),PolarXY(j))
    %hold on
%end
%polar(theta,E,'-');
%polar(theta,max(PolarXY,0),'-');
%grid on;
%grid minor;

[ Last edited by nono2009 on 2009-9-25 at 07:19 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jwye

铁虫 (初入文坛)

谢谢楼上的你,很细心,求和的式子应该是E=exp^(i*psai(j))+exp^(i*psai(j))+exp^(i*psai(j))+……+exp^(i*psai(j)),()里的才是指数。楼上的提出的应该不是原因。
7楼2009-05-27 13:19:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

fspdlh

金虫 (正式写手)

★ ★
kuhailangyu(金币+2,VIP+0):谢谢参与! 5-23 16:32
sum(M)=sum(M)+exp(psai(j)*sqrt(-1))
不要用sum作变量名,它是个函数
2楼2009-05-23 16:28:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jwye

铁虫 (初入文坛)

刚才把它改了,结果还是一样;问题可能在其他地方。
3楼2009-05-24 13:09:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

每一步都输出一下所求的变量,看是不是你想要的,慢慢调试嘛
4楼2009-05-24 23:04:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见