Выбрать с массива определенное кол-во строк зная начальный и
- mnml
- junior
- Сообщения: 57
- Зарегистрирован: 24 апр 2014, 18:03
- Версия LabVIEW: 16.0
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
Artem.spb, а по поводу массива выше вы видете что даты хаотично расположены, как быть в этом случае?
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Выбрать данные из 2d массива
и что же тут не получилось? ответ уже дан, голову сложно включить и выполнить последнее действие? перевести строки в числа и отсортироватьmnml писал(а):Задача выбрать все строки из 2D массива по дате из первого столбца с "10.10.2016" - по "1.11.2016" (т.е. и промежуточные даты тоже 10,11,12,13 и так далее до первого числа следующего месяца)
Прошу выручайте! Спасибо!
Artem.spb писал(а):например, такmnml писал(а):вот блин задача, я не пойму как сделать правильную сортировку по дате если число начинаеться не с нуля (04.10.2016), с 4.10.2016 ....
из-за этого дата с числом 27.10.2016 отображаеться после сорта выше сем за 4.10.2016
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
не вижу, потому что массив пустой.mnml писал(а):Artem.spb, а по поводу массива выше вы видете что даты хаотично расположены, как быть в этом случае?
В1) отсортировать массив, найти границы диапазона и взять его.
в2) (проще) в цикле просмотреть каждую строку. Если дата в рамках диапазона (например, ф-ия inRange), взять эту строку в новый массив.
-
- beginner
- Сообщения: 49
- Зарегистрирован: 13 апр 2014, 18:53
- Версия LabVIEW: 14
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
вряд ли второй вариант проще, всё равно же отсортировать придётся, либо до проверки каждой строки на соответствие диапазону, либо получившийся новый массив из подходящих строк, потому что нет гарантии, что в исходном массиве строки в порядке возрастания даты. Если конечно подразумевается задача вывода искомых строк в порядке возрастания даты, а не просто вывода искомых строк.в2) (проще) в цикле просмотреть каждую строку. Если дата в рамках диапазона (например, ф-ия inRange), взять эту строку в новый массив.
Если на пальцах, то примерно так (КАК ВАРИАНТ):Так что ме судя по всему так не кто и не поможет с моей проблемой, потому что я так и не решил эту задачу!
1. формируете новый массив из (например) кластеров, в которых первый (например) элемент - это дата записи, преобразованная в число или Time Stamp, а другой элемент - вся строка целиком.
2. сортируете массив кластеров по возрастанию первого в нашем случае, элемента (каким угодно способом).
3. зная необходимый диапазон дат, находите элементы массива, удовлетворяющие условиям поиска (можно "запомнить" индексы в переменную, можно вывести в отдельный массив).
4. выводите в отдельный массив строк вторые компоненты кластеров (строки целиком), удовлетворяющих условиям поиска, (определённые в п.3). Это и будет искомый массив, в котором строки будут упорядочены по возрастанию даты.
Выполнение каждого шага описывали ранее, работа с кластерами сводится к использованию функций Bundle (Budle By Name) и Unbundle (Unbundle By Name).
Соберите уж всё вместе самостоятельно.
А то выглядит не как "помогите мне решить задачу", а как "решите мне задачу".
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
это зачем???Shurik_85 писал(а):вряд ли второй вариант проще, всё равно же отсортировать придётся.в2) (проще) в цикле просмотреть каждую строку. Если дата в рамках диапазона (например, ф-ия inRange), взять эту строку в новый массив.
мой вариант делается в одно действие (в одном цикле) без промежуточных массивов
ваш вариант
и интересно, как будете искать индексы (п3), в таком массиве:Shurik_85 писал(а): 1. новый массив
2. сортируете массив
3. зная необходимый диапазон дат, находите элементы массива, удовлетворяющие условиям поиска (можно "запомнить" индексы в переменную, можно вывести в отдельный массив).
4. в отдельный массив
1
2
3
6
7
8
25
1
4
нужны строки из диапазона 4..29?
-
- beginner
- Сообщения: 49
- Зарегистрирован: 13 апр 2014, 18:53
- Версия LabVIEW: 14
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
Уважаемый Artem.spb, ЗДЕСЬ
А здесь:
"2. сортируете массив кластеров ПО ВОЗРАСТАНИЮ ПЕРВОГО, в нашем случае, ЭЛЕМЕНТА (каким угодно способом)."
В УПОРЯДОЧЕННОМ массиве нет проблем с определением индексов (тоже кстати НАПРИМЕР, можно выделить индексы, можно не выделять, а сразу достать часть массива), или диапазона элементов 4..29, НАПРИМЕР.
имелось в виду СЛЕДУЮЩЕЕ: "вряд ли второй вариант проще ЧЕМ ПЕРВЫЙ, всё равно же отсортировать ПРИДЁТСЯ, либо до проверки каждой строки на соответствие диапазону, либо получившийся новый массив из подходящих строк, потому что нет гарантии, что в исходном массиве строки в порядке возрастания даты.ЕСЛИ конечно ПОДРАЗУМЕВАЕТСЯ задача вывода искомых строк В ПОРЯДКЕ ВОЗРАСТАНИЯ даты, А НЕ ПРОСТО ВЫВОДА искомых строк В ПОРЯДКЕ ИХ СЛЕДОВАНИЯ В ИСХОДНОМ МАССИВЕ".вряд ли второй вариант проще,
А здесь:
тоже всё не сложно. В предложенном мной варианте заведомо сделана оговорка "КАК ВАРИАНТ", на случай желающих покритиковать и сравнить с ЗАВЕДОМО более оптимальным, совершенным. А в пункте 2 алгоритма написано:и интересно, как будете искать индексы (п3), в таком массиве:
1
2
3
6
7
8
25
1
4
нужны строки из диапазона 4..29?
"2. сортируете массив кластеров ПО ВОЗРАСТАНИЮ ПЕРВОГО, в нашем случае, ЭЛЕМЕНТА (каким угодно способом)."
В УПОРЯДОЧЕННОМ массиве нет проблем с определением индексов (тоже кстати НАПРИМЕР, можно выделить индексы, можно не выделять, а сразу достать часть массива), или диапазона элементов 4..29, НАПРИМЕР.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Выбрать с массива определенное кол-во строк зная начальн
Уважаемые, истина рождается в споре, но тут ситуация совершенно иная, по крайней мере как мне видится.
Задача проста и очевидна, однако правила неоднозначны:
Решение у задачи есть и неоднократно указывалось.
Либо он совершенно не хочет напрячь "серое вещество" и доделать сам, либо это банальный троллинг.
Дискуссия ведется с 27 октября, в теме уже больше 50 постов, из которых 18 написал автор
Задача проста и очевидна, однако правила неоднозначны:
Все зависит от цели, которую преследует автор.mnml 27 окт 2016, 14:18 писал(а):Всем привет!
Ребята прошу выручайте, помогите решить задачу!
Есть 1D массив - кол-во строк = 1115 - кол-во столбцов = 8
Задача: выбрать данные с этого массива зная - начальный = 16 и конечный = 350 индексы
Цель вывести в таблицу все строки по первому столбцу (дата)
Например: c 4.10.2016 по 27.10.2016
Спасибо!
Решение у задачи есть и неоднократно указывалось.
Либо он совершенно не хочет напрячь "серое вещество" и доделать сам, либо это банальный троллинг.
Дискуссия ведется с 27 октября, в теме уже больше 50 постов, из которых 18 написал автор
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- mnml
- junior
- Сообщения: 57
- Зарегистрирован: 24 апр 2014, 18:03
- Версия LabVIEW: 16.0
- Контактная информация:
Выборка данных с массива по временному интервалу
Здравствуйте, уважаемые инженеры!
Столкнулся с проблемой следующего характера:
Есть файл CSV (Прикреплен ниже)
Задача: Выбрать с файла все строки с интервалом по времени , а именно с 08:00:00 по 20:00:00
Файл для считывания также прикреплен в низу!
Большое спасибо за помощь!
Столкнулся с проблемой следующего характера:
Есть файл CSV (Прикреплен ниже)
Задача: Выбрать с файла все строки с интервалом по времени , а именно с 08:00:00 по 20:00:00
Файл для считывания также прикреплен в низу!
Большое спасибо за помощь!
- Вложения
-
- all_data.csv
- Файл с данными
- (38.11 КБ) 126 скачиваний
-
- Logs.zip
- Примеры проекта для LV 2010, 2013, 2015, 2016
- (95.73 КБ) 122 скачивания
- mnml
- junior
- Сообщения: 57
- Зарегистрирован: 24 апр 2014, 18:03
- Версия LabVIEW: 16.0
- Контактная информация:
Re: Выборка данных с массива по временному интервалу
Павел, подскажите, а если я укажу теперь не с 8 утра до 8 вечера, а с 8 вечера до 8 утра, он не отображает данные!
Не подскажите почему ?
Не подскажите почему ?
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Выборка данных с массива по временному интервалу
Вы правильно отметили, "инженеры", а не маразматики!mnml писал(а):Здравствуйте, уважаемые инженеры!
Столкнулся с проблемой следующего характера:
Есть файл CSV (Прикреплен ниже)
Задача: Выбрать с файла все строки с интервалом по времени , а именно с 08:00:00 по 20:00:00
Файл для считывания также прикреплен в низу!
Большое спасибо за помощь!
По этому не будем плодить пустые сущности.
Перечитываем тему с самого первого поста и следуем рекомендациям.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- mnml
- junior
- Сообщения: 57
- Зарегистрирован: 24 апр 2014, 18:03
- Версия LabVIEW: 16.0
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
Так мне кто-то поможет с моим вопросом ?
Если делать выборкув массиве с интервалом 08:00:00 - 20:00:00 - все работает, а вот как реализовать выборку с интервалом 20:00:00 - 08:00:00 ?
Пожалуйста помогите!
Если делать выборкув массиве с интервалом 08:00:00 - 20:00:00 - все работает, а вот как реализовать выборку с интервалом 20:00:00 - 08:00:00 ?
Пожалуйста помогите!
- mnml
- junior
- Сообщения: 57
- Зарегистрирован: 24 апр 2014, 18:03
- Версия LabVIEW: 16.0
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
Вот поподробнее :
Нужно:
Выбрать данные с 02.03.2017 - по 03.03.2017 с временным интервалом с 20:00:00 - 08:00:00
Получается мы должны получить данные:
за 02.03.2017 с 20:00:00 - 23:59:59
за 03.03.2017 с 00:00:00 - 07:59:59
за 03.03.2017 с 20:00:00 - 23:59:59
если сделать <8 или >=20 то получается программа выдерает данные с 00:00:00 - 07:59:59 - за второе число, а это уже другая смена с 1-ого числа по 2-ое число
Как это реализовать ?
Пожалуйста помогите!
Нужно:
Выбрать данные с 02.03.2017 - по 03.03.2017 с временным интервалом с 20:00:00 - 08:00:00
Получается мы должны получить данные:
за 02.03.2017 с 20:00:00 - 23:59:59
за 03.03.2017 с 00:00:00 - 07:59:59
за 03.03.2017 с 20:00:00 - 23:59:59
если сделать <8 или >=20 то получается программа выдерает данные с 00:00:00 - 07:59:59 - за второе число, а это уже другая смена с 1-ого числа по 2-ое число
Как это реализовать ?
Пожалуйста помогите!
- Вложения
-
- Get_Array_Values_by_Time_Period_Night.vi
- Выборка с файла
- (21.86 КБ) 120 скачиваний
-
- all_data.csv
- Файл с данными
- (279.85 КБ) 120 скачиваний
- mnml
- junior
- Сообщения: 57
- Зарегистрирован: 24 апр 2014, 18:03
- Версия LabVIEW: 16.0
- Контактная информация:
Re: Выбрать с массива определенное кол-во строк зная начальн
Так что есть у кого, кие-то мысли ?
Прикрепляю проект целиком для наглядного примера!
Прикрепляю проект целиком для наглядного примера!
- Вложения
-
- Master Project 2010.zip
- Проект целиком LV2010
- (1.55 МБ) 121 скачивание
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 988 Просмотры
-
Последнее сообщение seromax
-
- 2 Ответы
- 394 Просмотры
-
Последнее сообщение Sergey Puzanov