salut tt monde
j'ai fait un programme qui faire le code RLE et je dois faire le codage huffman sur ce tableau mais comment faire une arbre sous MATLAB
voici mon code
Code:clc clear all v=[0 0 0 2 1 5 5 5 5 5 2 2 2 1 1 ] %exemple de tab [] cpt=1; f=[]; m=1; for i=1:numel(v)-1 if v(i)==v(i+1) cpt=cpt+1; else N(m)=v(i); R(m)=cpt; m=m+1; cpt=1; end if v(numel(v))==v(numel(v)-1) N(m)=v(numel(v)); R(m)=cpt; else N(m)=v(numel(v)); R(m)=1; end end %crée 2 tabs 1 pour le nombre et 2 pour le nombre d'itération dans tout la tab NO=[]; m=1; bool=0; for i=1:numel(R) sum=R(i); for j=i+1:numel(R) if N(i)==N(j) sum=sum+R(j); end end for k=1:length(NO) if NO(k)==N(i) bool=1; end end if bool==0 NO(i)=N(i); REP(i)=sum; end end if N(numel(N)-1)~=N(numel(N))&& (bool~=1) NO(numel(NO)+1)=N(numel(R)); REP(numel(REP)+1)= R(numel(R)); end %triee for i=1:numel(REP)-1 for j=i+1:numel(REP)-1 if REP(i)>REP(j+1) d=REP(i); REP(i)=REP(j+1); REP(j+1)=d; d=NO(i); NO(i)=NO(j+1); NO(j+1)=d; end end end if REP(numel(REP)-1)> REP(numel(REP)) d=REP(numel(REP)-1); REP(numel(REP)-1)=REP(numel(REP)); REP(numel(REP))=d; d=NO(numel(REP)-1); NO(numel(REP)-1)=NO(numel(REP)); NO(numel(REP))=d; end
-----