登录论坛

查看完整版本 : [MATLAB毕业设计] 请问这段代码错误在哪


likeshu1103
2011-05-09, 13:28
t=0:10^-12:40000*10^-12; dt=10^(-12);N=40000;
l=1;xs=0.2;
a=2.5*10^(-3);b=9.345*10^(-3);
H=5.76*10^7; %对应文献符号:H=σ
erel=2.5;e0=8.85*10^(-12);u0=4*pi*10^(-7);
L=u0/2*pi*log(b/a);C=(2*pi*e0*erel)/(log(b/a));R=(1/pi*H)*(1/a+1/2*b*0.6*10^(-3));
RL1=100;RL2=10;
x=xs;
G=(1/2*pi)*sqrt(u0/H)*(1/a+1/b); %对应文献符号:G=ξ
v=1/sqrt(L*C);
a1=(G/2)*sqrt(C/L);a2=(R/2)*sqrt(C/L);
for k=0:N
dk=dt*k;
if dk<x/v
g1(k)=0;
else
g1(k)=exp(-a2.*x).*(a1.*x/(2.*sqrt(pi.*(k.*dt-x/v)^3)).*exp(-(a1.*x)^2/(4.*(k.*dt-x/v)));
end
end
有哪位大侠知道的指出来,不胜感激。

yhcode
2011-05-09, 16:04
MATLAB中对于数据或矩阵的第一个元素的下标是1而不是0,你的for循环应该改成从1开始,对于改后其他数据是否也要改动,你自己看吧

likeshu1103
2011-05-10, 19:39
谢谢啦,我再试试吧。

likeshu1103
2011-05-10, 19:44
??? g1(k)=exp(-a2.*x).*(a1.*x/(2.*sqrt(pi.*(k.*dt-x/v)^3)).*exp(-(a1.*x)^2/(4.*(k.*dt-x/v)));
|
Error: Incomplete or misformed expression or statement.
请问这是啥意思?

yhcode
2011-05-10, 21:39
问题是:表达式不完整或错误表达
检查括号是否匹配,以及各个变量的size是否匹配。如果不嫌麻烦可以将该表达式拆成多个小的表达式一步一步验证,最后在整合

风湿百合
2011-05-12, 12:04
您好!请问您是否可以在百忙之中帮我写该一段matlab的程序!十分感激您的帮助!
[r,q]=size(x);
[s2,q]=size(t);
s1=6;
[w1,b1]=rands(s1,r);
[w2,b2]=rands(s2,s1);
df=100; %学习过程显示频率
me=3000; %最大训练步数
eg=0.001;%误差平方和指标
lr=0.1;
lr_inc=1.05;
lr_idec=0.95;
mom_const=0.1;
err_ratit=1.04;
tp=[df me eg lr lr_inc lr_idec mom_const err_ratio];
[w1,b1,w2,b2,epochs,errors]=trainbpx(w1,b1,'logsig',w2,b2,'purelin',x,t,tp);
x=[0.00 0.252 0.439 0.626 0.813 1.000 0.00 0.190 0.392 0.595 0.798 1.000 0.00 0.252 0.439 0.626 0.831 1.000,
1.000 0.795 0.592 0.378 0.204 0.000 1.000 0.815 0.626 0.415 0.189 0.000 1.000 0.835 0.637 0.451 0.235 0.000];
a=simuff(x,w1,b1,'logsig',w2,b2,'purelin');