确定向量元素的 运行 长度
Determining run-lengths of the elements of a vector
我正在尝试计算向量中每个数字在向量中连续出现的次数。
例如给定
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
实际矩阵更大。是否有一个特定的函数可以 returns 这样的值,或者我是否有任何其他方法可以解决这个挑战?
试试这个:
ind = [find(diff(vector)) numel(vector)];
result = [vector(ind); ind(1) diff(ind)];
我正在尝试计算向量中每个数字在向量中连续出现的次数。
例如给定
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
实际矩阵更大。是否有一个特定的函数可以 returns 这样的值,或者我是否有任何其他方法可以解决这个挑战?
试试这个:
ind = [find(diff(vector)) numel(vector)];
result = [vector(ind); ind(1) diff(ind)];