clear allclearclcclf%清理变量,清屏,关闭图形窗口
load data %装载数据文件
for i=1:21 %for循环,从1到21
b=eemd(e(:,i),0.4,100)调用eemd()函数
bb(:,i)=b(:,4)+b(:,5)+b(:,6)+b(:,7)+b(:,8)+b(:,9) %b矩阵相加,即b矩阵的第4列+b矩阵的第5列+b矩阵的第6列+b矩阵的第7列+b矩阵的第8列+b矩阵的第9列的和赋值给bb矩阵的所有行第i列
end
wigb(bb),title('EEMD去噪') %调用wigb()函数,title图形的标题
for i=1:21 %for循环,从1到21
c=emd(e(:,i))%调用emd()函数并赋值给c
c(:,i)=c(2,:)+c(3,:)+c(4,:)+c(5,:)+c(6,:)%c矩阵相加,即c矩阵的第2行+c矩阵的第3行+c矩阵的第4行+c矩阵的第5行+c矩阵的第6行的和赋值给c矩阵的所有行第i列
end
end
figure(2) %建立第二个图形窗口
wigb(c),title('EMD去噪')%调用wigb()函数,title图形的标题
function[mseq]=m_sequence(fbconnection)%%函数声明,函数名字m_sequence,函数输入变量fbconnection,函数输出mseqn=length(fbconnection)%%得到fbconnection的长度
N=2^n-1%%得到循环次数
register=[zeros(1,n-1) 1]%%建立大小为1*n的矩阵,前n-1个元素都为0,第n个元素为1
mseq(1)=register(n)%%让输出的第一个元素为1
for i=2:N%%i从2开始循环,一直去到N
newregister(1)=mod(sum(fbconnection.*register),2)%%让fbconnection和register中对应元素相乘,并求和,然后除以2得余数赋给newregister的第一个元素
for j=2:n
newregister(j)=register(j-1)%%把register的前n-1个元素赋给newregister的第2-n个元素,也就是全0
end
register=newregister%%把newregister的值赋给register
mseq(i)=register(n)%%把register的第n个元素的值赋给mseq的第i个元素
end
m函数文件function dy=eq3(t,y)
dy=zeros(2,1)%dy定义为两行一列的矩阵,即列向量
dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2) %两个微分方程的右边的表达式
dy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2)
m脚本文件
t0=0tf=60 %t0是时间的起点,tf是时间的终点
[t,y]=ode45('eq3',[t0 tf],[0 0]) %这里一般给定三个东西,第一个是方程的m文件名,中间那个是时间的起始点和终点,最后那个是初值
T=0:0.1:2*pi
X=10+20*cos(T)
Y=20+15*sin(T)
plot(X,Y,'-') %应当是一个椭圆
hold on
plot(y(:,1),y(:,2),'*') %相图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)