Bonjour,
j'essaie de comprendre ce code qui remplit le rôle de compression/décompression RLE.
Il était mal commenté et j'ai du mal avec les fonctions même après avoir cherché sur internet et le help de matlab je suis perdu.

Si quelqu'un peut me le commenter ou m'expliquer, merci !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
% data = rle(x) 
if iscell(x) % decoding
    i = cumsum([ 1 x{2} ]);
    j = zeros(1, i(end)-1);
    j(i(1:end-1)) = 1;
    data = x{1}(cumsum(j));
else % encoding
    if size(x,1) > size(x,2), x = x'; end % if x is a column vector, tronspose
    i = [ find(x(1:end-1) ~= x(2:end)) length(x) ];
    data{2} = diff([ 0 i ]);
    data{1} = x(i);
end