在MATLAB中,有一个bwlabel函数,给定一个二进制向量,例如x=[1 1 0 0 0 1 1 0 0 1 1 1 0]give(bwlabel(x)):
[1 1 0 0 0 2 2 0 0 3 3 3 0]
Run Code Online (Sandbox Code Playgroud)
但我想要获得的是
[1 1 2 2 2 3 3 4 4 5 5 5 6]
Run Code Online (Sandbox Code Playgroud)
我知道我可以否定x获得(bwlabel(~x))
[0 0 1 1 1 0 0 2 2 0 0 0 3]
Run Code Online (Sandbox Code Playgroud)
但我怎样才能将它们结合起来?
全部在一行:
y = cumsum([1,abs(diff(x))])
Run Code Online (Sandbox Code Playgroud)
也就是说,abs(diff(x))二进制矢量中的斑点会发生变化,您将获得累积和的输出.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |