我有一组数字,我想使用预测编码来获得这组数据的较小值,因为每个值与最后一个值的差别不大。我只是简单地使用期望值开始,每个值与最后一个值相同,然后只存储错误。
对于一些简单的数据:
1 2 -3 1
我应该得到的值是
1 1 -5 4
我做这种压缩的方式是一行,但要解压缩我需要最后一个值,所以我把它放在一个循环中。有没有办法做到这一点,并且可能更复杂(更多地考虑最后一个值)预测编码而无需使用Matlab循环。
答案 0 :(得分:0)
根据@Divakar的建议,构建新值可以通过
完成B = [A(1) diff(A)];
从该结果中获得原始数据,上述过程的反转是通过
完成的A = cumsum(B);