我想找到一个正弦曲线(可能从曲线上任何一点开始)到达第一个最大值,并且只有第一个最大值。为此,我正在运行一个循环,将一个值与前一个值进行比较。如果一个点大于其先前的值,则它趋于上升,而相反则相似。查找正弦波/检测变量变化的第一个峰值c#
在c#中,如何检测变量何时从趋势变为趋势向下?换句话说,如何检测变量何时发生变化。在LabVIEW
中,这可以使用移位寄存器来完成。什么是在C#中的等效物?
我想找到一个正弦曲线(可能从曲线上任何一点开始)到达第一个最大值,并且只有第一个最大值。为此,我正在运行一个循环,将一个值与前一个值进行比较。如果一个点大于其先前的值,则它趋于上升,而相反则相似。查找正弦波/检测变量变化的第一个峰值c#
在c#中,如何检测变量何时从趋势变为趋势向下?换句话说,如何检测变量何时发生变化。在LabVIEW
中,这可以使用移位寄存器来完成。什么是在C#中的等效物?
public static int FirstMaxIndex(int[] values)
{
bool up = false;
for (int i = 1; i < values.Length; i++)
if (values[i] < values[i - 1])
{
if (up) return i;
else up = false;
}
else if (values[i] > values[i - 1])
{
up = true;
}
return -1;
}
我没有测试这个。这只是给你一个如何解决这个问题的想法。 (我把它写得尽可能接近你在评论中写的东西。)
你到目前为止提出了什么?有很多方法可以做到这一点;了解我们可以基于哪些答案将是有用的。 – Fildor
到目前为止,我的结构如下:请原谅我的记法。 “ 为(I = 1; [正弦阵列的端] 如果(sinearray [I]
msegctc
您可以计算1.导数并寻找符号的变化,您可能无需执行即时操作通过阵列计算所有数据st首先打破循环> 0到<= 0的变化。 – Fildor