| 查看: 877 | 回复: 6 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
【求助】关于matlab循环
|
|||
|
目前问题是这样的: 阶微分方程组得到一组数据(2500个时间单位) 现取其中一组例如x的序列进行hilbert变换得到数据(定义相位) 现在想把得到的数据有一个判断:当后一个时刻的值比前一个时刻的值大的时候,我们定义的相位+2pi 请问这个循环怎么写!! |
» 猜你喜欢
论文终于录用啦!满足毕业条件了
已经有10人回复
2025年遐想
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
求个博导看看
已经有18人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】三维矩阵运算
已经有8人回复
|
下面是我写的程序,如何修改? function rosslertest2() clc; clear all; tic; [T,x]=ode45(@Rossler,[0,2000],[0.2;0.3;0.6;0.4;0.7;0.1]); y1=x(:,1); m1=hilbert(y1); N=length(m1); n1=imag(m1); l1=real(m1); p1=atan2(n1,l1); p2=p1; dy1=0; for i=2:N; if p1(i) end p2(i)=p2(i)+dy1; end y2=x(:,4); m2=hilbert(y2); M=length(m2); n2=imag(m2); l2=real(m2); p3=atan2(n2,l2); p4=p3; dy2=0; for i=2:M; if p3(i) end p4(i)=p4(i)+dy2; end p5=abs(p4-p2); plot(p5) toc; function dx = Rossler(t,x) dx1=-(1+0.015)*x(2)-x(3)+0.01*(x(4)-x(1)); dx2=(1+0.015)*x(1)+0.15*x(2); dx3=0.2+x(3)*(x(1)-10); dx4=-(1-0.015)*x(5)-x(6)+0.01*(x(1)-x(4)); dx5=(1-0.015)*x(4)+0.15*x(5); dx6=0.2+x(6)*(x(4)-10); dx=[dx1;dx2;dx3;dx4;dx5;dx6]; |
3楼2010-10-07 19:50:01
5楼2010-10-08 09:54:37
7楼2010-10-11 08:42:59







回复此楼