Построение двух графиков при помощи XY Graph
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 фев 2014, 21:56
- Версия LabVIEW: 7
- Контактная информация:
Построение двух графиков при помощи XY Graph
Народ помогите, плиз. Для наглядности решения заданной задачи необходимо построить 2 пересекающих графика на одном графопостроители. Что только не пробывал, просмотрел кучу Exampl'ов. Моя задача примерна схожа с нижепредставленной. Как сделать чтоб каждый график строился как самостоятельный график и была видно точка пересечения графиков. Буду благодарен.
- Вложения
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 фев 2014, 21:56
- Версия LabVIEW: 7
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
Спасибо большое, но встает еще один вопрос. Почему построение возможно только в цикле For Loop? цикл While Loop в этом случае не годный.
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
можно включить индексацию массива на выходном туннеле (правой кнопкой на него, там вместо "последнего значения" выбрать индексацию), но это плохо, потому что это издевательство над памятью. For Loop знает, сколько раз выполнится, и сразу выделяет место под массив. While же на каждой итерации создаёт новый массив.Булат писал(а):Спасибо большое, но встает еще один вопрос. Почему построение возможно только в цикле For Loop? цикл While Loop в этом случае не годный.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Построение двух графиков при помощи XY Graph
Можно и в цикле While, только вывод на граф надо делать на каждой итерации, как и добавление новых точек в массивы. Используйте Shift регистры для хранения массивов. И не забудьте добавить перед входом в цикл инициализацию пустыми массивами.
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 фев 2014, 21:56
- Версия LabVIEW: 7
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
Спасибо за объяснения, наверно будет проще использовать цикл For Loop.
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 фев 2014, 21:56
- Версия LabVIEW: 7
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
продолжая тему, взяв такой простой пример, необходимо вывести точку пересечения двух графиков в виде индикатора или другим способом, но главное чтоб выдавалось самое первое значение, при котором один график становится выше другого, пробывал через операции с массивами. получается что выдает все значения при котором график становится выше другого, посоветуйте что нибудь полезное))
Re: Построение двух графиков при помощи XY Graph
Можно поступить так:
1) создаем одномерный массив признаков, которые показывают когда Y1>Y2(или наоборот);(результатом станет последовательность, например 0 0 0 0 0 0 1 1 1 1 1)
2) циклом по длине созданного массива минус один (x=1...xm-1), находим границу перехода между 0 и 1. В строке выше это точки 6 и 7. Для этого сравниваем значения xi-1 и xi, если они равны между собой (xi-1=xi), то ставим 0, иначе 1.
Теперь остается только вывести ту пару, для которой результат шага 2 будет ненулевым.
Этот пример будет работать столько раз, сколько есть точек пересечения. Если нужна только первая или Nная, то надо просто добавить счетчик числа переходов и строить график с учетом детектора и счетчика
1) создаем одномерный массив признаков, которые показывают когда Y1>Y2(или наоборот);(результатом станет последовательность, например 0 0 0 0 0 0 1 1 1 1 1)
2) циклом по длине созданного массива минус один (x=1...xm-1), находим границу перехода между 0 и 1. В строке выше это точки 6 и 7. Для этого сравниваем значения xi-1 и xi, если они равны между собой (xi-1=xi), то ставим 0, иначе 1.
Теперь остается только вывести ту пару, для которой результат шага 2 будет ненулевым.
Этот пример будет работать столько раз, сколько есть точек пересечения. Если нужна только первая или Nная, то надо просто добавить счетчик числа переходов и строить график с учетом детектора и счетчика
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
зачем такие сложности?
после шага 1 вызвать функцию "поиск в 1д массиве", она и сообщит первое значение (индекс) Т в заданном массиве.
дальше по индексу точки находятся координаты.
после шага 1 вызвать функцию "поиск в 1д массиве", она и сообщит первое значение (индекс) Т в заданном массиве.
дальше по индексу точки находятся координаты.
Re: Построение двух графиков при помощи XY Graph
Забыл об этой функции, потому и сложно решил.зачем такие сложности?
после шага 1 вызвать функцию "поиск в 1д массиве", она и сообщит первое значение (индекс) Т в заданном массиве.
-
- user
- Сообщения: 73
- Зарегистрирован: 14 апр 2014, 21:09
- Версия LabVIEW: 2015
- Откуда: Санкт-Петербург
Re: Построение двух графиков при помощи XY Graph
Так то оно, конечно так, но есть одна тонкость. Если на графике функции имеются резко нелинейные участки, значение функции может очень сильно измениться между двумя соседними индексами. И тогда координаты места превышения одного графика над другим будет указано неточно.Artem.spb Вчера, 02:08
зачем такие сложности?
после шага 1 вызвать функцию "поиск в 1д массиве", она и сообщит первое значение (индекс) Т в заданном массиве.
дальше по индексу точки находятся координаты.
Для уточнения места превышения (ну или точек пересечения графиков, если нужно) можно воспользоваться Interpolate 1D Array
Я вот сляпал пример (во вложении), показывающий разницу в результатах при использовании грубой и более точной оценке координат превышения одной кривой над другой с использованием этой .
- Вложения
-
- Точки превышения.vi
- (24.03 КБ) 362 скачивания
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
учитесь читать ТЗ :)bartex писал(а):Так то оно, конечно так, но есть одна тонкость. Если на графике функции имеются резко нелинейные участки, значение функции может очень сильно измениться между двумя соседними индексами.
только поэтому я не стал предлагать интерполяцию - её не было в задании.Булат писал(а):но главное чтоб выдавалось самое первое значение, при котором один график становится выше другого.
-
- interested
- Сообщения: 5
- Зарегистрирован: 24 фев 2014, 21:56
- Версия LabVIEW: 7
- Контактная информация:
Re: Построение двух графиков при помощи XY Graph
Спасибо большое за то что откликнулись) очень благодарен) буду пробывать предложенные решения
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 1 Ответы
- 846 Просмотры
-
Последнее сообщение IvanLis
-
- 23 Ответы
- 4628 Просмотры
-
Последнее сообщение maxim_MA
-
- 6 Ответы
- 1647 Просмотры
-
Последнее сообщение ladik
-
- 38 Ответы
- 13307 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 2 Ответы
- 271 Просмотры
-
Последнее сообщение Optoelectronics