摘要:做信号处理运算时,很多时候都需要找到最大值所在的位置。在matlab里面一条指令就行了,但是在keil下,就需要自己写算法了。本文就用几行代码,教您找到最大值下标(角标)。
如下图,想找到最大值所在位置,怎么办?matlab下,找到最大值仅需要一个语句。
1.matlab下怎么找最大值角标
输入语句[m,index]=max(q1)就能求出来最大值m是多少,它的位置index是多少。
[m,index]=max(q1)
结果如下图所示,这个例子中有一个特殊之处,就是最大值所处的位置有好几个,matlab找到的最大值位置是第一次出现的时候。
2.keil下怎么找到最大值角标
keil下找最大值角标的思路和冒泡排序找最大值的思路是相同的,就是用一个临时变量(这里假设为max),让这个临时变量与数组中的每一个数据比较大小,如果临时变量小于这个数组数据,那么就让临时变量的数据更新为当前的这个数组数据,并记录下来它的角标,用index_max来保存下来。如果这个数据一直比到最后都没有找到比他大的数,那么它就是那个最大的数了,index_max也一直保留着最后的状态。它就是您要找的最大值角标了。
max = test_array[0];
for(i=0;i<FFT_LENGTH;i++)
{
if (max < test_array[i])
{
max = test_array[i];
index_max = i;
}
}
printf("%d\r\n",index_max);
这个程序非常简单,但是经常被用到。