Я хочу внедрить технику сжатия DNA Tunstall в MATLAB. Например: с помощью 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