Tag: 运行长度编码

在Matlab中运行长度编码

我很新的MatLab,我有运行长度编码代码,但它似乎不工作,你能帮我吗? 我有这个input: ChainCode = 11012321170701000700000700766666666666665555555544443344444333221322222322 我想把它变成RLE输出: (1,2), (0,1), (1,1), (2,1), (3,1), (2,1), (1,2), (7,1), (0,1), (7,1), (0,1), (1,1), (0,3), (7,1), (0,5), (7,1), (0,2), (7,1), (6,13), (5,8), (4,4), (3,2), (4,5), (3,3), (2,2), (1,1), (3,1), (2,5), (3,1), (2,2) 这是我的代码: lengthcode = 1; N = 1; for i = 2:length(ChainCode) if x(i)==x(i-1) N = N + 1; valuecode(N) […]

在Matlab中元素明智的数组复制

比方说,我有一个一维数组: a = [1,2,3]; 有一个内置的Matlab函数,它接受一个数组和一个整数n并且复制数组中的每个元素n次? 例如调用replicate(a, 3)应该返回[1,1,1,2,2,2,3,3,3] 。 请注意,这与repmat完全不一样。 我当然可以通过对每个元素进行repmat并连接结果来实现replicate ,但是我想知道是否有一个更高效的内置函数。

重复数组元素的副本:在MATLAB中运行长度解码

我试图插入多个值到一个数组使用'值'数组和'计数器'数组。 例如,如果: a=[1,3,2,5] b=[2,2,1,3] 我想要一些函数的输出 c=somefunction(a,b) 成为 c=[1,1,3,3,2,5,5,5] (1)重复b(1)次,a(2)重复b(2)次,等等 MATLAB中有内置函数吗? 如果可能,我想避免使用for循环。 我已经试过了'repmat()'和'kron()'的变种无济于事。 这基本上是Run-length encoding 。