Кодирование и декодирование длин серий в MATLAB
Кодирование длин серий, или RLE, — это простой метод сжатия данных без потерь, при котором ряды данных или последовательности данных с одинаковым значением во многих последовательных элементах сохраняются как одно значение и учитываются, а не как исходный ряд. Другими словами, RLE (кодирование длины цикла) — это простой метод сжатия данных, который включает указание количества повторений цвета символа или пикселя перед значением символа или пикселя. Цель состоит в том, чтобы использовать меньше битов для представления заданного набора данных.
Кодирование длины прогона:
Путем «подсчета» записей в заданной последовательности создается счетная последовательность (RLE).
Например, последовательность x = 2, 2, 2, 1, 1, 5, 5, 6, 6, 6, 6. может быть прочитана как три двойки, две единицы, пять двоек, четыре шестерки, что переводится как b = 3, 2, 2, 1, 5, 2, 4, 6. Следовательно, b — это схема счета для a.
Пример 1:
Matlab
| % MATLAB CODE for encoding clcclear allclose alla=input("Enter the array:");b=[];c=1;fori=1:length(a)-1    if(a(i)==a(i+1))        c=c+1;    else        b=[b,c,a(i),];    c=1;    endendb=[b,c,a(length(a))];disp(b); | 
Выход:
Например, последовательность x = 9, 5, 1, 2, 3, 4, 5, 7 и 2, 5, 1, 2, 4, 1, 1, 3 может быть прочитана как девять пятерок, одна двойка, три четверки. , пять 7. Что означает y = 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 4, 4, 4, 7, 7, 7, 7, 7
Пример 2:
Matlab
| % MATLAB code for decoding clcclear allclose alla=input("Enter the array:");b=[];fori=1:2:length(a)    b=[b a(i)];endc=[];fori=2:2:length(a)    c=;endu=[];fori=1:length(b)    n=b(i);    r=c(i);    forq=1:n        u=[u r];    endend | 
Выход: