在数组中访问元素的智能方法,以在MATLAB中执行某些操作

时间:2017-10-19 23:22:18

标签: matlab sorting computer-vision signal-processing

很抱歉再次提问,但它与我之前提出的问题不同,只是数组相同,但查询不同。

我有一个原始数组

A = [1 0 1 4.3 4.5 5 4.3 3 0 0 0 2 6.2 6.3 7 6.2 7.4 8 7.2 1 2 3 4 2];
来自代码的

预期输出

A = [1 1 1 4 4 4 1 1 1 0 0 2 6 6 6 6.2 7.4 8 2 2 2 3 3 2];

我在数组A中找到了正局部最大值和负局部最大值,然后我应用了一些限制并删除了一些最大值和最小值,并且形成了一个具有局部最大值和最小值的数组。

包含正负极局部最大值的数组以及位置。

Yloc = [2     6     9    15    20    23];
Ymaximaminimanew = [0     5     0     7     1     4];

现在我将{1}}的正负局部最大值的位置分开。

Yloc

我想要的是什么:

我想制作一个循环来检查Ymaximaminimanew中的值,如果首先出现负局部最大值然后执行与负局部最大值相关联的某个动作,并且如果该值属于正局部最大值,则执行属于正局部的某些动作最大值。

示例

Yposlocfiltered = [ 6    15    23];
Yneglocfiltered = [2     9    20];

我使用的逻辑在代码中提供。如果有人建议我使用更好的逻辑来使我的代码变得更聪明,那么它就会很好。

我对代码有一些问题我没有得到我想要的所需输出。只是一个小错误可能是循环格式化。

我在循环4时遇到一些问题,当t = 4时,它的开始行为不端如果有人让我知道如何在简单和最小的步骤中巧妙地做到这一点那么它会非常好。

提前感谢您的时间,专业知识和帮助。

代码:

Like in Ymaximaminimanew first is 0 which belongs to negative local maxima 
then do the action. Please have a look at attached code it will go to elseif 
and perform the task.

2nd value is 5 which is positive local maxima so it will go to if and 
perform the task.

0 个答案:

没有答案