Не прямоугольная таблица из array of clusters

Простейшие вопросы в области инженерной разработки
Ответить
Taba
beginner
beginner
Сообщения: 31
Зарегистрирован: 02 дек 2015, 15:06
Репутация: 0
Версия LabVIEW: 2018
Контактная информация:

Не прямоугольная таблица из array of clusters

Сообщение Taba »

Всем привет, есть такая subvi "non rectangle matrix", смысл его в том, чтоб взять массив (Array), скажем из ста элементов и прибавить к нему массив массивов из 10 элементов (Array of arrays) и получить "массив" массивов (Output) с первым элементом - массивом из ста и остальными - массивами из 10 элементов. Теперь если взять index array от Output, то можно прочесть нужную строку, причём они могут буть разных длин, т.е. получилась как бы не прямоугольная таблица.
Я это раньше делал так, как в "non rectangle matrix.vi", т.е. "вручную" через case structure, как тоже самое сделать через for loop? Появилась необходимость складывать таким образом сотни массивов (а не единицы как раньше, когда я мог каждый конкретный случай прописать в case).

Я пробовал играться в cluster, class, variant palette, но без результата..
P.S. В Disabled structure оставил ошметки от игр.
Вложения
Non rectangle matrix.vi
(38.33 КБ) 45 скачиваний
array of arrays.jpg

Artem.spb

Activity Автор
expert
expert
Сообщения: 1934
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Не прямоугольная таблица из array of clusters

Сообщение Artem.spb »

Массив кластеров.
только я не понял. зачем кейсы? Чем индекс массива не работает?
arr.png

Taba
beginner
beginner
Сообщения: 31
Зарегистрирован: 02 дек 2015, 15:06
Репутация: 0
Версия LabVIEW: 2018
Контактная информация:

Re: Не прямоугольная таблица из array of clusters

Сообщение Taba »

По вашему примеру получается сгруппировать массив из массивов чисел разных длин, не знал, что это так можно, спасибо.

У меня немного другая задача, есть длинный двумерный массив и массив коротких двумерных массивов, нужно из них сделать массив из двумерных массивов, в котором первый элемент длинный, остальные короткие. И, казалось бы, должно просто получится, но у меня что-то всё не получится =(.
У меня затык с массивом коротких массивов, раньше, когда элементов в нём было мало, я прописывал, типа, если их 3, то берёшь и делаешь "build cluster array" из первого длинного и 0-го индекса массива массивов + 1-го индекса + 2-го индекса.

Теперь у меня сотни элементов в массиве массивов и я хз как это сделать.

В примере, который висит в аттаче есть всё, что я описал выше, он работает, но надо его модернизировать на произвольное число элементов массива массивов.

Taba
beginner
beginner
Сообщения: 31
Зарегистрирован: 02 дек 2015, 15:06
Репутация: 0
Версия LabVIEW: 2018
Контактная информация:

Re: Не прямоугольная таблица из array of clusters

Сообщение Taba »

Перезаливаю .vi, поменял входные контролы "Array" и "Array of arrays" на константы с аналогичным названием чтоб можно было поиграться. То, что мы получаем на выходе "Output" - то, что мне нужно.
Вложения
Non rectangle matrix 1.vi
(42.27 КБ) 48 скачиваний

Taba
beginner
beginner
Сообщения: 31
Зарегистрирован: 02 дек 2015, 15:06
Репутация: 0
Версия LabVIEW: 2018
Контактная информация:

Re: Не прямоугольная таблица из array of clusters

Сообщение Taba »

Разобрался. Всё встало на свои места, как только до меня дошло, что в for loop нужно использовать concentrate на выходе, а не пытаться через shift register к первому длинному массиву каждый раз прибавлять всё новые "массивчики" =)
Вложения
solution.png

Artem.spb

Activity Автор
expert
expert
Сообщения: 1934
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Репутация: 0
Версия LabVIEW: 12-18
Контактная информация:

Re: Не прямоугольная таблица из array of clusters

Сообщение Artem.spb »

Только сейчас посмотрел ваш код (на будущее, для быстрого получения ответа сохраняйте в более ранние версии, не все ставят новинки)
У вас и есть массив кластеров <чего угодно>. Я из вопроса решил, что вам нужен массив.
"массив массивов" из C# в :labview: реализуется через прослойку в виде кластера.
Ну и наконец, по "решению". Совершенно не нужно разбирать-собирать данные. Эти два "выхода" дают один и тот же результат, а действий меньше и код понятнее.
array.png

Ответить

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