确定向量元素的运行长度

时间:2015-02-27 21:07:08

标签: arrays matlab matrix

我试图计算向量中每个数字在向量中连续出现的次数。

例如,给定

vector = [8 8 8 7 6 6 5 5 5 5 5 5 5 5 5 5 4 4 3 5 3 2 2];

我想要一个输出,告诉我二维矩阵,其中第一行包含向量的值,第二行包含该值的运行长度:

8   7   6   5   4   3   5   3   2
3   1   2   10  2   1   1   1   2

实际矩阵的大小更大。是否有特定功能可以返回这些值?还是有其他方法可以解决这个挑战?

1 个答案:

答案 0 :(得分:1)

试试这个:

ind = [find(diff(vector)) numel(vector)];
result = [vector(ind); ind(1) diff(ind)];