Привет форум!
Итак есть снипет на c# который позволяет искать пики из массива чисел, он работает, но только с int, а нужно как всегда double...

добавил два шаблона, рабочий и не рабочий,
исправления делал в не рабочем шаблоне, т.е. изменил все int на double, Lenght поменял на Count, но заставить скрипт работать не получилось
Так же интересно как можно вывести весь список ответов как это происходит при работе скрипта rextester.com/IML43119
у меня Return возвращает только одно значение, СПАСИБО
ПС
Если кому то лень качать шаб
Тот с которым я пытаюсь что то сделать:
Рабочий:
Итак есть снипет на c# который позволяет искать пики из массива чисел, он работает, но только с int, а нужно как всегда double...

добавил два шаблона, рабочий и не рабочий,
исправления делал в не рабочем шаблоне, т.е. изменил все int на double, Lenght поменял на Count, но заставить скрипт работать не получилось
Так же интересно как можно вывести весь список ответов как это происходит при работе скрипта rextester.com/IML43119
у меня Return возвращает только одно значение, СПАСИБО

ПС
Если кому то лень качать шаб
Тот с которым я пытаюсь что то сделать:
C#:
List<double> values = new List<double>();
project.Variables["Y"].Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Where(s => !string.IsNullOrWhiteSpace(s))
.ToList()
.ForEach(d => values.Add(double.Parse(d, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture)));
List<double> curInterval = new List<double>();
bool decreasing = false;
for (double i = 0; i < values.Count; i++)
{
if (curInterval.Count > 0)
{
if (values[i] < curInterval.Last() && !decreasing)
{
return ("Position: " + (i - 1).ToString() + ", peak value: " + curInterval.Last());
curInterval.Clear();
decreasing = true;
}
else if (values[i] >= curInterval.Last() && decreasing)
{
decreasing = false;
}
}
curInterval.Add(values[i]);
}
Рабочий:
C#:
int[] values = new int[] {93, 113, 113, 75, 50, 94, 127, 118, 63, 62, 111, 129, 105, 49, 77, 124, 132, 92, 48, 98, 137, 132, 78, 60, 116, 145, 124, 65, 78, 129, 150, 113, 58, 97, 146, 151, 94, 62, 113, 157, 143, 73, 73, 134, 162, 129, 63, 93, 148, 158, 112, 63, 114, 160, 152, 90, 73, 132, 166, 144, 73, 89, 150, 167, 126, 67, 110, 161, 164, 105, 69, 128, 168, 155, 82, 89, 146, 170, 137, 74, 107, 160, 171, 121, 72, 123, 171, 168, 105, 82, 144, 173, 155, 82, 100, 160, 176, 139, 78, 120, 168, 172, 114, 78, 136, 173, 162, 97, 95, 157, 182, 146, 79, 110, 162, 176, 126, 75, 129, 177, 167, 103, 85, 147, 175, 152, 86, 103, 158, 174, 132, 75, 117, 166, 170, 112, 74, 134, 172, 155, 84, 92, 151, 171, 140, 74, 105, 160};
List<int> curInterval = new List<int>();
bool decreasing = false;
for (int i = 0; i < values.Length; i++)
{
if (curInterval.Count > 0)
{
if (values[i] < curInterval.Last() && !decreasing)
{
return ("Position: " + (i - 1).ToString() + ", peak value: " + curInterval.Last());
curInterval.Clear();
decreasing = true;
}
else if (values[i] >= curInterval.Last() && decreasing)
{
decreasing = false;
}
}
curInterval.Add(values[i]);
}
Вложения
-
11,2 КБ Просмотры: 2
-
12,7 КБ Просмотры: 1
Последнее редактирование: