声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1296|回复: 2

[编程技巧] Subscript indices must either be real positive integers or logicals 出错求助

[复制链接]
发表于 2008-4-7 13:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
c=299792458;%velocity in vacuum
a=xlsread('b.xls'); wavelength=a(57:136,1)*10^-9;
wavelength_delta=0.005*10^-9;
f=c./wavelength;
gd=a(57:136,2)*10^-12;
N=length(gd);

phase=zeros(N,1);
for n=1:N/2-1
    phase(N/2-n)=phase(N/2-n-1)-2*pi*c*wavelength_delta*sum(1./wavelength(N/2-n).^2.*gd(N/2-n));
end
for n=1:N/2
    phase(N/2+n)=-phase(N/2)-2*pi*c*wavelength_delta*sum(1./wavelength(N/2:N/2+n).^2.*gd(N/2:N/2+n));
end
F=polyfit(f,phase,2);
phase_fit=F(1)*f.^2+F(2)*f+F(3);%拟合

figure(1)
plot(wavelength,phase,'r')
hold on
plot(wavelength,phase_fit,'b')
出错提示:??? Subscript indices must either be real positive integers or logicals.
不知道为什么呀,我想实现的是:最后得到的phase为一个N*1的矩阵,其中画出来的phase结果应该是一条平滑的曲线。主要是需要处理中间的当n=N/2时的phase值的问题,谢谢了,急需!万分感谢

[ 本帖最后由 eight 于 2008-4-7 16:16 编辑 ]

b.doc

92 KB, 下载次数: 2

需要的数据

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-4-7 16:17 | 显示全部楼层
原帖由 zheng720 于 2008-4-7 13:01 发表
c=299792458;%velocity in vacuum
a=xlsread('b.xls'); wavelength=a(57:136,1)*10^-9;
wavelength_delta=0.005*10^-9;
f=c./wavelength;
gd=a(57:136,2)*10^-12;
N=length(gd);

phase=zeros(N,1);
fo ...
http://www.chinavib.com/forum/thread-46001-1-1.html 2楼
 楼主| 发表于 2008-4-7 16:57 | 显示全部楼层
已搞定了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-25 05:03 , Processed in 0.068356 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表