游程编码 matlab代码
时间: 2024-04-23 15:21:18 浏览: 165
游程编码(Run-length encoding)是一种简单的无损数据压缩算法,它通过将连续重复的数据序列替换为一个计数值和一个重复的数据值来减少数据的存储空间。下面是一个用Matlab实现游程编码的示例代码:
```matlab
function encodedData = runLengthEncode(data)
% 初始化计数器和编码结果
count = 1;
encodedData = [];
% 遍历输入数据
for i = 2:length(data)
% 如果当前数据与前一个数据相同,则计数器加1
if data(i) == data(i-1)
count = count + 1;
else
% 否则,将计数器和前一个数据添加到编码结果中
encodedData = [encodedData, count, data(i-1)];
count = 1; % 重置计数器
end
end
% 添加最后一个数据的计数值和数据值
encodedData = [encodedData, count, data(end)];
end
```
使用示例:
```matlab
data = [1, 1, 1, 2, 2, 3, 4, 4, 4, 4];
encodedData = runLengthEncode(data);
disp(encodedData);
```
输出结果:
```
1 3 2 2 3 4 4
```
阅读全文