MATLAB代做  | MATLAB代写  | MATLAB有偿编程
首 页
当前位置:MATLAB代做|MATLAB代写|MATLAB有偿编程matlab源码参考源码matlab方面
基于matlab编程金融时间序列中最大命中子模式树算法源码程序        [↓跳到下载地址]
官方主页:源码共享网站:www.buycode.cn

联系方式:客服QQ:1747812398 买代码源码软件站,欢迎咨询

运行环境:Win9X/2000/XP/2003/

源码语言:简体中文

源码类型:源码程序 - 参考源码 - matlab方面

推荐星级:

更新时间:2016-04-05 22:37:37

源码简介

%2007年4月14日 第四篇文章 最大命中子模式树算法 test100
 
clear
p=4;
q=6;
minconf=0.25;
 
%产生人工仿真数据,a**d,重复2500次
ds=2500;
for i=1:ds
   s((i-1)*p+1)='a';
   s((i-1)*p+4)='d';
   M=1;
   %randn('state',0);
   while M==1
      %v=normrnd(0,0.1);
      v=randn;
      if (v>=-3)&(v<=3)
         s((i-1)*p+2)=char(97+floor((v+3)*q/6));
         M=0;
      end
   end
   %randn('state',1);
   while M==0
      %v1=normrnd(-3,3);
      v1=randn;
      if (v1>=-3)&(v1<=3)
         s((i-1)*p+3)=char(97+floor((v1+3)*q/6));
         M=1;
      end
   end
end
 
%计算每个1-模式的计数
n=length(s)/p;
count(1:14)=0;
for i=1:n
   for j=1:p
      d(i,j)=s((i-1)*p+j);
   end
   if d(i,1)=='a'
      count(1)=count(1)+1;
   end
   if d(i,2)=='a'
      count(2)=count(2)+1;
   elseif d(i,2)=='b'
      count(3)=count(3)+1;
   elseif d(i,2)=='c'
      count(4)=count(4)+1;
   elseif d(i,2)=='d'
      count(5)=count(5)+1;
   elseif d(i,2)=='e'
      count(6)=count(6)+1;
   elseif d(i,2)=='f'
      count(7)=count(7)+1;
   end
   if d(i,3)=='a'
      count(8)=count(8)+1;
   elseif d(i,3)=='b'
      count(9)=count(9)+1;
   elseif d(i,3)=='c'
      count(10)=count(10)+1;
   elseif d(i,3)=='d'
      count(11)=count(11)+1;
   elseif d(i,3)=='e'
      count(12)=count(12)+1;
   elseif d(i,3)=='f'
      count(13)=count(13)+1;
   end
   if d(i,4)=='d'
      count(14)=count(14)+1;
   end
end
 
%选出频繁1-模式,构成F11
L1=0;
for i=1:14
   if count(i)>=minconf*n
      L1=L1+1;
      F1(L1)=i;
   end
end
F1
for i=1:L1
   if F1(i)==1
      F11(i,:)='a***';
   elseif F1(i)==2
      F11(i,:)='*a**';
   elseif F1(i)==3
      F11(i,:)='*b**';
   elseif F1(i)==4
      F11(i,:)='*c**';
   elseif F1(i)==5
      F11(i,:)='*d**';
   elseif F1(i)==6
      F11(i,:)='*e**';
   elseif F1(i)==7
      F11(i,:)='*f**';
   elseif F1(i)==8
      F11(i,:)='**a*';
   elseif F1(i)==9
      F11(i,:)='**b*';
   elseif F1(i)==10
      F11(i,:)='**c*';
   elseif F1(i)==11
      F11(i,:)='**d*';
   elseif F1(i)==12
      F11(i,:)='**e*';
   elseif F1(i)==13
      F11(i,:)='**f*';
   elseif F1(i)==14
      F11(i,:)='***d';
   end
end
F11=F11
 
%由频繁1-模式形成候选最大模式Cmax
 
k1=0;
for i=1:p
   D=F11(:,i);
   k=0;
   for j=1:L1
      if D(j)~='*'
         k1=k1+1;
         Cmax(k1)=D(j);
         k=1;
      end
      if (j==L1)&(k==0)
         k1=k1+1;
         Cmax(k1)='*';
      end
   end
   k1=k1+1;
   Cmax(k1)='0';
end
Cmax=Cmax
 
%判断Cmax的L-长度
len=0;
len1=0;
for i=1:length(Cmax)
   if (isletter(Cmax(i))==1)&(len==0)
      len=len+1;
      Lth(len)=Cmax(i);
      len1=len1+1;
   elseif (isletter(Cmax(i))==1)&(len~=0)
      M1=0;
      for j=1:len1
         if Cmax(i)~=Lth(j)
              M1=M1+1; 
         end
      end
      if M1==len1
         len=len+1;
         Lth(len)=Cmax(i);
         len1=len;
      end
   end
end
Lth=Lth
Lth_length=length(Lth)
 
%构造最大子模式图
Lnode=struct('x',0,'y',0);
for i=1:(len-1)
   Lnode(i).x=len+1-i;
   Lnode(i).y=1;
   %Lnode1(i,2)=Snode(1).cx(len+1-i);
end
 
D1=findstr(Cmax,'0');
H1=struct('x1',{},'x2',{},'x3',{},'x4',{},'x5',{},'x6',{},'x7',{});
H2=struct('x1',{},'x2',{},'x3',{},'x4',{});
H3=struct('x1',{},'x2',{},'x3',{},'x4',{});
 
for i=1:2500
   % Cmax与每个周期段作交运算,得到命中的最大子模式
    %判断命中的最大子模式是否为空
   for j=1:4
      D2(j)=s((i-1)*4+j);
      if j==1
         d3=findstr(Cmax(1:(D1(j)-1)),D2(j));
         if isempty(d3)==1
            H(j)='*';
         else
            H(j)=D2(j);
         end
      else
         d3=findstr(Cmax((D1(j-1)+1):(D1(j)-1)),D2(j));
         if isempty(d3)==1
            H(j)='*';
         else
            H(j)=D2(j);
         end
      end
   end
   if strcmp(H,'****')==0
      if isempty(H1)==1
         H1(1).x1=H(1);
         H1(1).x2=H(2);
         H1(1).x3=H(3);
         H1(1).x4=H(4);
         H1(1).x5=1;
         H1(1).x6=p-length(findstr(H,'*'));
      else
         k=0;
         for j1=1:length(H1)
            H2(1).x1=H1(j1).x1;
            H2(1).x2=H1(j1).x2;
            H2(1).x3=H1(j1).x3;
            H2(1).x4=H1(j1).x4;
            H3(1).x1=H(1);
            H3(1).x2=H(2);
            H3(1).x3=H(3);
            H3(1).x4=H(4);
            c1=struct2cell(H2);
            c2=struct2cell(H3);
            if strcmp(c1,c2)==1
               H1(j1).x5=H1(j1).x5+1;
            else
               k=k+1;
            end
         end
         if k==length(H1)
            H1(k+1).x1=H(1);
            H1(k+1).x2=H(2);
            H1(k+1).x3=H(3);
            H1(k+1).x4=H(4);
            H1(k+1).x5=1;
            H1(k+1).x6=p-length(findstr(H,'*'));
         end
      end
   end       
end
 
k2=0;
for j=1:length(H1)
   k2=k2+H1(j).x5;
end
k2=k2
 
%在命中模式集H1中,求每一个最大命中子模式的超模式;
for j=1:length(H1)
   k=0;
   for i=1:length(H1)
      if H1(j).x6<H1(i).x6
         H2(1).x1=H1(j).x1;
         H2(1).x2=H1(j).x2;
         H2(1).x3=H1(j).x3;
         H2(1).x4=H1(j).x4;
         %H1(j)与H1(i)作交运算
         if isempty(findstr(H1(j).x1,H1(i).x1))==1
            H3(1).x1='*';
         else
            H3(1).x1=H1(j).x1;
         end
         if isempty(findstr(H1(j).x2,H1(i).x2))==1
            H3(1).x2='*';
         else
            H3(1).x2=H1(j).x2;
         end
         if isempty(findstr(H1(j).x3,H1(i).x3))==1
            H3(1).x3='*';
         else
            H3(1).x3=H1(j).x3;
         end         
         if isempty(findstr(H1(j).x4,H1(i).x4))==1
            H3(1).x4='*';
         else
            H3(1).x4=H1(j).x4;
         end
         %H1(j)与H1(i)作交运算的结果H3与H1(j)--H2比较,如果H3==H2,则H1(i)是H1(j)的超模式
         c1=struct2cell(H2);
         c2=struct2cell(H3);
         if strcmp(c1,c2)==1
            k=k+H1(i).x5;
         end
      end
   end
   H1(j).x7=k+H1(j).x5;
end 
 
     


提 示:本站所有源码只提供浏览,需要定制的朋友可以联系在线客服!
注意:价格根据项目的难易程度来定价格业务咨询

基于matlab编程金融时间序列中最大命中子模式树算法源码程序 --下载地址

注意:为避免不必要的误会,本站项目里的源码只公开部分需要的联系在线客服

本站长期招聘程序代写高手,欢迎加入华南地区matlab团队

想创业却没有经验的人

无论你是否有过网上开店的经验,都可以随时联系在线客服,建立自己独立的网站
想开网店却不知道如何入手

淘宝创业成本低而且风险小,如果想开淘宝店的朋友可以联系在线客服。
想兼职创业,却不擅长交际与服务的人

在家创业月入5000元。网站程序+百套群发工具+网赚资料+域名+空间+本站终身代理资格,这样你网赚的条件全具备了。每天3小时管理、推广、收钱。
缺乏能快速赢利型产品的人

导入多种最新流行营销软件+网赚教程,让入驻者轻松加盟、复制有效成交技巧、快速赚钱。

源码评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

浏览说明

* 本站所有源码全部公开,随时随地浏览!
* MATLAB软件如用于商业用途,请购买正版!
* 如果您发现下载链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含破解及注册码均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们!
Copyright © 2008-2014 www.buycode.cn. All Rights Reserved.
页面执行时间:233.39840 毫秒