Удаление повторяющихся элементов в массиве

Простейшие вопросы в области инженерной разработки
Ответить
e-not67
interested
interested
Сообщения: 4
Зарегистрирован: 16 июл 2015, 12:23
Версия LabVIEW: 12
Контактная информация:

Удаление повторяющихся элементов в массиве

Сообщение e-not67 »

Здравствуйте.

Возникла следующая ситуация.
Необходимо удалить из массива повторяющиеся элементы.
Вроде ничего сложного?! Реализуем с помощью Search 1D Array.vi, запускаем и не работает (см. вложение), т.е. дубликаты в диапазоне от 0 до 1 не удаляются. Если числа в диапазоне от 1 до +∞ ,то все норм.

Может кто-нибудь объяснить почему так?
Вложения
001.vi
LabVIEW 2012
(10.58 КБ) 77 скачиваний
001.png
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Удаление повторяющихся элементов в массиве

Сообщение Blackman »

Измените количество знаков после разделителя в индикаторах.
0.01 -> 0.011
0.1 -> 0.11
e-not67
interested
interested
Сообщения: 4
Зарегистрирован: 16 июл 2015, 12:23
Версия LabVIEW: 12
Контактная информация:

Re: Удаление повторяющихся элементов в массиве

Сообщение e-not67 »

Ну да, дрянь получается.
Вводишь 0.009, а LV сам меняет на 0.00899999999999999932.
Спасибо.
Вложения
002.png
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Удаление повторяющихся элементов в массиве

Сообщение Borjomy_1 »

e-not67, А вы почитайте, как хранятся числа с плавающей точкой! Это полная глупость так работать с действительными числами. Сначала определитесь, какие действительные числа вы считаете повторами. Если у вас фиксированное количество разрядов после запятой, то переводите массив в массив чисел с фиксированной точкой и уже там производите чистку.
т.е если у вас два значащих разряда после запятой, то умножаете число на 100 и переводите его в I32. Полученный массив уже можно чистить вашим способом. Для отображения результата массив переводите в DBL и делите на те-же 100.
Ответить

Вернуться в «Для чайников»