Advertisement

MATLAB编程实例练习第43题:找出数组长度及其零元素位置

阅读量:

题目

源自Mathwork平台的Cody,Problem 1779 - Oh Zero Zero Zero!!!

需要定位向量中所有为0的区域,并确定这些连续零的长度及其起始位置。例如:
x = [1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1];
%此时输出应为:
LP = [9 10] %[Length Position]

%再举一例:

x = [1 0 3 49 3 2 232 极其长的零序列,例如:
x = [1 极其长的零序列,例如:
x = [1 极其长的零序列,例如:
x = [1 极其长的零序列,例如:
x = [1 极其长的零序列,例如:
x = [1 极其长的零序列,例如:
x = [1 极其长的零序列,例如:

%此时输出应为:
LP = [6 某个具体数值]

%再举一个例子:

x = [1 零区域长度及起始位置。

引申
该问题与工程实践中识别某一信号持续时间最长的位置及其持续时长相类似。

解法
整体思路可分为以下几个步骤实施:
第一步,区分向量中哪些元素为零、哪些非零;
第二步,识别从非零到零或从零到非零的变化点(由于数组两端可能存在连续的零值,在这种情况下无法通过差分函数直接获取

全部评论 (0)

还没有任何评论哟~