tunstall压缩

时间:2012-01-12 05:22:39

标签: algorithm matlab compression

我想在MATLAB中实现DNA Tunstall压缩技术。例如:使用temp2更改右列中每个对应代码左侧列中的每个字符:

temp2 = 
     'C'     [0.2500]    [000]
     'G'     [0.2500]    [001]
     'T'     [0.2500]    [010]
    'AA'    [0.0625]    [011]
    'AC'    [0.0625]    [100]
    'AG'    [0.0625]    [101]
    'AT'    [0.0625]    [110]

我编写了这段代码,但是当我运行它时,MATLAB进入无限循环。我不知道为什么,我不知道如何避免这个问题。

这是我的代码

Sqnc="AAGCCCTAGACCG"; 

maxlength3=size(temp2{size(temp2,1),3},2); 

compressedcode=2*ones(1,maxlength3*size(Sqnc,2)); 
compressedcodepart=0; maxlength=size(temp2{size(temp2,1),1},2); codestart=1;` `   
codeend=codestart+maxlength-1;` 

while codeend<=size(Sqnc,2)       

     code=Sqnc(codestart:codeend); 
     stepback=0; 

     while stepback<maxlength-1 

         code=code(1:end-stepback); 
         adress=0; 

         adress=find(ismember(temp2([1:end],1), code)==1); 

         if adress~=0 
    `         compressedcode(compressedcodepart+1:maxlength3)=temp2{adress,3};` `     
              compressedcodepart=compressedcodepart+3;` 
              codestart=codestart+maxlength-stepback; 

              codeend=codestart+maxlength-1; 

              stepback=maxlength; 

          end 

     end 

 end

0 个答案:

没有答案