【问题标题】:Matlab: find length of specific parts of array given a thresholdMatlab:在给定阈值的情况下查找数组特定部分的长度
【发布时间】:2019-02-10 12:50:40
【问题描述】:

考虑下图中显示的 1 和 0 向量

如何在不使用循环的情况下获取此类数组中的一/零部分的长度?

【问题讨论】:

  • 我不太清楚你的意思。你想要什么作为向量 [0 0 0 1 1 0 1 0 1 1 1 1] 的输出?您是否期望一个向量详细说明每个部分的长度 [3 2 1 1 1 4]?

标签: matlab


【解决方案1】:

您可以像这样使用difffind

a = [ 0 0 0 1 1 0 0 1 1 1 1 0 1];
result = diff(find([ 1 diff(a) 1]))

result =

 3     2     2     4     1     1

或者,其他例子:

a = [ 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1]
result = diff(find([ 1 diff(a) 1]))

result =

 2     4     1     1     1     5     3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多