在Matlab中不使用循环进行预测编码?

时间:2014-09-29 20:26:10

标签: matlab compression

我有一组数字,我想使用预测编码来获得这组数据的较小值,因为每个值与最后一个值的差别不大。我只是简单地使用期望值开始,每个值与最后一个值相同,然后只存储错误。

对于一些简单的数据:

1 2 -3 1

我应该得到的值是

1 1 -5 4

我做这种压缩的方式是一行,但要解压缩我需要最后一个值,所以我把它放在一个循环中。有没有办法做到这一点,并且可能更复杂(更多地考虑最后一个值)预测编码而无需使用Matlab循环。

1 个答案:

答案 0 :(得分:0)

根据@Divakar的建议,构建新值可以通过

完成
B = [A(1) diff(A)];

从该结果中获得原始数据,上述过程的反转是通过

完成的
A = cumsum(B);