【发布时间】:2015-01-21 15:21:16
【问题描述】:
我想计算连续整数序列的所有长度并将它们作为向量返回。
例如,考虑向量:
x = [1 2 3 4 6 8 9 10 12 13];
长度为:
length([1 2 3 4]) = 4;
length([6]) = 1;
length([8 9 10]) = 3;
length([12 13]) = 2;
所以,我要生成的结果是:
y = [4 1 3 2]
我怎样才能做到这一点?
【问题讨论】:
-
这不是完全重复的,但它涵盖了您的问题等等:printing consecutive numbers
-
您正在寻找
x-(1:length(x))的所谓运行长度。所以你可以使用这个答案:Run length encoding -
@knedlsepp,RLE 中的运行通常被认为是相同值的序列。这两件事当然很接近,但并不完全相同。准确地说。
-
@A.Donda:但是
x-(1:length(x))的运行长度不仅接近,而且正是我们想要的......
标签: matlab run-length-encoding