设一个v长度n为a的向量,v = randi([0 1],1,n)随机包含0或1.
获取向量表示每个0段或1段中有多少0或1的有效方法是什么?
例:
v = [1 0 0 0 1 1 0 0 1] ---->
counts = [0 1 3 2 2 1] (*0* zero, *1* one, *3* zeros, ....)
v = [0 0 1 0 0 0] ---->
counts = [2 1 3]
Run Code Online (Sandbox Code Playgroud)
PS总是首先计数0,如果向量以1开始,则结果向量的第一个条目,即计数(1),应为0.
这是一种相当简单的方法:
diff(find(diff([inf v inf])))
Run Code Online (Sandbox Code Playgroud)
如果您还想知道哪个值对应于每个段,那么扩展应该不难.