【发布时间】:2012-08-17 02:05:02
【问题描述】:
我是 MatLab 的新手,我有运行长度编码代码,但它似乎不起作用,你能帮我吗?
我有这个输入:
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) = x(i);
lengthcode(N) = lengthcode(N) + 1;
else
N = 1;
lengthcode = 1;
end
i = i + 1;
end
但这不起作用,我仍然对如何打印这样的输出感到困惑。
我希望你能帮助我。谢谢你。
【问题讨论】:
-
如果有人可以帮助如何计算现有输出的出现频率。例如:(1.2), (0.1), (1.1), (2.1), (3.1), (2.1), (1.2), (7.1), (0 , 1) (1,2) = 2 次 (0, 1) = 2 次 (1,1) = 1 次,依此类推。谢谢
-
您应该修改您的原始帖子/问题(或作为新问题发布),以防您需要与发布的内容不同的内容。请参阅下面的更新答案以查找出现频率。
标签: matlab run-length-encoding