result={13}; acid={'Ala','Arg','Asp','Asn','Cys','Gln','Glu','Gly','His','Ile','Leu','Lys','Met','Phe','Pro','Ser','Thr','Trp','Tyr','Val'}; %acid={'Ala','Arg','Asp','Asn','Cys'}; %acid=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']; ends={'L','V','K','R'}; lIndex=1;
%function to find the all possible combination
function funcomb(index,result,acid,last,fileID) result(index+1)='Y';
for count2=1:length(acid)
switch (count2)
case 1 for p=1:length(acid) result{index+1+1}=acid{p}; result{index+1+1+1}=last; %fprintf('%s\t',strvcat(result)); fprintf(fileID,'%s',result{:}); fprintf(fileID,"\n");
end
case 2 %fprintf(fileID,"\n"); for p=1:length(acid) result{index+1+1}=acid{p}; for q=1:length(acid) result{index+1+1+1}=acid{q}; result{index+1+1+1+1}=last; %fwrite(fileID,'%s\t',result); fprintf(fileID,'%s',result{:}); fprintf(fileID,"\n"); end end
case 3 %fprintf(fileID,"\n"); for p=1:length(acid) result{index+1+1}=acid{p}; for q=1:length(acid) result{index+1+1+1}=acid{q}; for r=1:length(acid) result{index+1+1+1+1}=acid{r}; result{index+1+1+1+1+1}=last; %fwrite(fileID,'%s\t',result); fprintf(fileID,'%s',result{:}); fprintf(fileID,"\n"); end end end
case 4 %fprintf(fileID,"\n"); for p=1:length(acid) result{index+1+1}=acid{p}; for q=1:length(acid) result{index+1+1+1}=acid{q}; for r=1:length(acid) result{index+1+1+1+1}=acid{r}; for s=1:length(acid) result{index+1+1+1+1+1}=acid{s}; result{index+1+1+1+1+1+1}=last; %fwrite(fileID,'%s\t',result); fprintf(fileID,'%s',result{:}); fprintf(fileID,"\n"); end end end end
case 5 %fprintf(fileID,"\n"); for p=1:length(acid) result{index+1+1}=acid{p}; for q=1:length(acid) result{index+1+1+1}=acid{q}; for r=1:length(acid) result{index+1+1+1+1}=acid{r}; for s=1:length(acid) result{index+1+1+1+1+1}=acid{s}; for t=1:length(acid) result{index+1+1+1+1+1+1}=acid{t}; result{index+1+1+1+1+1+1+1}=last; %fwrite(fileID,'%s\t',result); fprintf(fileID,'%s',result{:}); fprintf(fileID,"\n"); end end end end end end %switch end end
end
% possible combination function end
fileID = fopen('Combfile.txt','wt'); for a=1:2 for z=3:4 last=ends{z};
for y=1:5 result{1}=ends{a}; switch(y)
case 1 for p=1:length(acid) result{lIndex+1}=acid{p}; rIndex=lIndex+1; funcomb(rIndex,result,acid,last,fileID); end
case 2 for p=1:length(acid) result{lIndex+1}=acid{p}; for q=1:length(acid) result{lIndex+1+1}=acid{q}; rIndex=lIndex+1+1; funcomb(rIndex,result,acid,last,fileID); end end
case 3 for p=1:length(acid) result{lIndex+1}=acid{p}; for q=1:length(acid) result{lIndex+1+1}=acid{q}; for r=1:length(acid) result{lIndex+1+1+1}=acid{r}; rIndex=lIndex+1+1+1; funcomb(rIndex,result,acid,last,fileID); end end end
case 4 for p=1:length(acid) result{lIndex+1}=acid{p}; for q=1:length(acid) result{lIndex+1+1}=acid{q}; for r=1:length(acid) result{lIndex+1+1+1}=acid{r}; for s=1:length(acid) result{lIndex+1+1+1+1}=acid{s}; rIndex=lIndex+1+1+1+1; funcomb(rIndex,result,acid,last,fileID); end end end end
case 5 for p=1:length(acid) result{lIndex+1}=acid{p}; for q=1:length(acid) result{lIndex+1+1}=acid{q}; for r=1:length(acid) result{lIndex+1+1+1}=acid{r}; for s=1:length(acid) result{lIndex+1+1+1+1}=acid{s}; for t=1:length(acid) result{lIndex+1+1+1+1+1}=acid{t}; rIndex=lIndex+1+1+1+1+1; funcomb(rIndex,result,acid,last,fileID); end end end end end end % switch end end end end status=fclose(fileID); status
This code is running continuously like never ending .Can anyone suggest me ,how to optimize the number of for loops.
Thanks uttam