Функции работы с массивами и кластерами

Автор работы: Пользователь скрыл имя, 29 Мая 2015 в 16:43, курсовая работа

Описание работы

Функции работы с массивами позволяют инициализировать массивы, определить их размеры, выделить элементы или подмассивы из массивов, удалить элементы или подмассивы, изменить размер или размерность массивов. Большинство функций являются полиморфными и могут работать с массивами данных числового, логического или строкового типа. При этом они автоматически перестраиваются при подключении массива с определенной размерностью. Часть функций для увеличения числа входов может быть растянута в вертикальном направлении с помощью инструмента перемещения.Функции работы с кластерами (рис. 2.226) позволяют собирать кластеры из отдельных элементов и разделять кластеры на элементы, а также формировать массивы кластеров.

Файлы: 1 файл

Shyngys Musalimov.docx

— 647.79 Кб (Скачать файл)

подключении массива наборов точек данных функция интерпретирует дробный индекса  или х как ссылку к элементам значений х в каждом наборе точек данных В последнем случае точки данных должны быть отсортированы по возрастанию значений х.

Вход массив чисел или точек может быть массивом чисел или массивом наборов  точек данных, в котором каждый набор является кластером координат х и у. Если на этот  вход подан массив наборов точек, то функция использует первый элемент в кластере  (х) для получения дробного индекса с помощью линейной интерполяции. После этого  функция использует этот дробный индекс для расчета выходного значения (у value) из

второго элемента кластера (у). 

Вход дробный индекса или х является индексом или значением х, для которого  функция должна вернуть значение у. Например, если вход массив чисел или точек  содержит два числа двойной точности с плавающей запятой 5 и 7, а на входе дробный  индекса или х установлено значение 0,5, то функция возвращает значение 6,0, которое  расположено посередине между значениями элементов 0 и 1.

Если массив чисел или точек содержит массив наборов точек данных, функция возвращает  значение у (у value), полученное с помощью линейной интерполяции при  значении х, соответствующем дробный индекса или х Например, если массив содержит

две точки, (3, 7) и (5, 9) и на входе дробный индекса или х установлено значение  3,5, то функция вернет значение 7,5

Вход дробный индекса или х не интерполирует за границами массива или набора  точек данных. Для корректной работы функции значение дробный индекса или х  должно быть расположено непосредственно в точке или между двумя точками.

Выход значение у отображает интерполированное значение элемента при значении  дробного индекса или интерполированное значение у при дробном индексе набора  точек данных массива массив чисел или точек

 

 

Threshold 1D Array                                    Порог одномерного массива

 

 

Функция сравнивает порогу (threshold у) и значения массива чисел или точек (array of  numbers or points), с начального индекса (start index) до нахождения пары таких соседних  элементов, что порогу будет больше значения первого элемента и меньше или  равен значению второго элемента.

Вход массив чисел или точек идентичен одноименному входу рассмотренной выше  функции Интерполировать одномерный массив (Interpolate 1D Array)

Вход порогу является пороговым значением функции. Если порогу меньше или равен  значению массива с индексом начальный индекс (start index), то функция возвращает начальный индекс на выходе дробный индекс или х (fractional index or x) Если порог  у больше каждого значения массива, то функция возвращает индекс последнего  значения. Если массив является пустым, функция возвращает значение NaN.

Вход начальный индекс должен быть числом. По умолчанию его значение равно 0, что  означает, что функция возвращает результат, рассчитанный для всего массива, а не  для его определенной части

Выход дробный индекс или х представляет результат линейной интерполяции, рассчитанный  LabVIEW для одномерного массива массив чисел или точек.

Так, например, если входной массив массив чисел или точек является массивом из четырех чисел [4, 5, 5, 6], начальный индекс равен 0 и порогу равен 5, тогда дробный индекс илих равен 1, соответствующей индексу первого найденного функцией значения 5 Если массив  содержит элементы 2,3, 5,2, 7,8, 7,9, 10,0, начальный индекс равен 0 и порогу равен 6,5, то тогда

выходное значение будет равно 1,5, поскольку 6,5 находится посередине между 5,2 (индекс 1) и  7,8 (индекс 2) Если порог у равно 7 для того же набора данных, то выходное значение будет равно 1,69

Если входной массив содержит массив точек, в котором каждая точка является кластером  координат х и у, выход представляет интерполированное значение х, соответствующее интерполированному  положению порога порог у, а не дробному индексу массива Если интерполированное  положение порог у находится посередине между индексами 4 и 5 массива, имеющего значения

по х -2,5 и 0 соответственно, то на выходе будет не значение индекса 4,5, как это было для  числового массива, а значение х, равное -1,25.

Эта функция не определяет индекс пересечения порога при отрицательном

наклоне и возвращает некорректное значение, если порогу меньше значения

элемента, имеющего начальный индекс Ее необходимо использовать для массивов  с неубывающими по порядку элементами. Для лучшего анализа массивов  целесообразно использовать ВП Пороговый детектор пиков (Threshold Peak  Detector)

 

 

Interleave 1D Arrays                                  Чередовать одномерные массивы

 

 

Функция поочередно размещает элементы с равными индексами из входных массивов  в один выходной массив.

Входы массив CL.n-1 (array 0. п-1) должны быть одномерными массивами Если  входные массивы имеют разный размер, то число элементов в чередуемом массиве (interleaved array) равно произведению числа элементов в самом коротком массиве на  число массивов

Выход чередуемый массив[0] содержит массив 0[0], чередуемый массив[1] содержит  массив 1 [0], чередуемый массив[п-1] содержит массив п-1[0], чередуемый  массив[п] содержит массив 0[1] и т. д., где п - число входных терминалов

 

 

Decimate 1D Array                                       Децимировать одномерный массив

 

Функция разделяет элементы входного массива (array) на ряд выходных массивов, размещая элементы на выходах последовательно. Число выходных терминалов может  быть увеличено путем растяжения иконки функции в вертикальном направлении  с помощью инструмента перемещения.

Вход массив может быть одномерным массивом любого типа, за исключением логического.

Выход децимированный массив (decimated array) представляет первый выходной  массив и содержит элементы 0, п, 2п,. Функция размещает элемент массив[0] по индексу 0 первого выходного массива, элемент массив[1] - по индексу 0 второго выходного массива, элемент массив[п-1] - по индексу 0 последнего выходного массива, элемент массив[п] - по индексу 1 первого выходного массива и т. д , где п - число выходных терминалов этой функции.

Например, если массив имеет 16 элементов и к функции подключено четыре выходных массива, то первый выходной массив получит элементы с индексами 0, 4, 8 и 12

Второй выходной массив получит элементы с индексами 1, 5, 9 и 13, третий массив – элементы 2, 6, 10 и 14, и последний массив - элементы 3, 7, 11 и 15

Выход децимированный массив 2 представляет второй выходной массив и содержит элементы 1, п+1, 2п+1... и  т.д

 

 

 

 

 

 

Reshape Array                                             Изменить форму массива

 

Рис. 2 26. Варианты подключения функции Изменить форму массива

 

Функция изменяет размер или размерность массива в соответствии со значениями входов объем размерности 0...m-1 (dimension size 0...m-1)

Вход массив может быть n-мерным массивом любого типа.

Входы объем размерности 0...т-1 должны быть числовыми Функция формирует пустой массив, если объем размерности равен 0 Для формирования m-мерного выходного массива функция должна иметь m входов объем размерности.

Если произведение всех значений объема размерности превышает число элементов входного массива, то функция дополняет новый массив значениями по умолчанию, имеющими тип данных элементов входного массива. Если это произведение меньше числа элементов входного массива,

функция усекает массив.

Данная функция не перемещает данные в памяти, а только изменяет их восприятие в соответствии с параметрами, задающими объем каждой размерности Так, например, если на вход функции передается одномерный массив с 9 элементами  (0,1,2,3,4.5,6,7,8}, а на входах объема размерности заданы значения 2 и 3, то функция возвращает двумерный массив, содержащий {{0,1,2},{3,4,5}} Функция усекает последние три входных

элемента, поскольку выходной массив может разместить только шесть элементов

Число входов объем размерности может быть увеличено путем растяжения иконки функции в вертикальном направлении с помощью инструмента перемещения

На рис 2 26 показаны варианты применения функции для изменения размера одномерного массива (рис 2 26а), преобразования одномерного массива в двумерный (рис 2 266), изменения размера двумерного массива (рис 2 26в) и преобразования двумерного массива в одномерный (рис 2 26г)

 

 

Array To Cluster                                            Массив в кластер

 

 

 

Функция преобразует одномерный массив в кластер элементов того же типа, что и элементы массива. Число элементов кластера устанавливается с помощью  опции Размер кластера (Cluster Size) контекстного меню функции. По умолчанию число элементов равно девяти Максимальный размер кластера для этой функции равен  256

 

 

Cluster To Array                                            Кластер в массив

 

 

 

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

 

В качестве примера эффективного использования функций работы с массивами на рис. 2.27 приведена блок-диаграмма ВП Уравнение нагрева (Heat Equation) из набора примеров N1 Example Finder LabVIEW.

 

 

 

 

 

 

РИС 2 27. Блок-диаграмма ВП Уравнение нагрева (Heat Equation)

 

 

В следующей таблице рассмотрены функции работы с кластерами.

Bundle

Сборка кластера

 

Функция собирает кластер из отдельных элементов. Эту же функцию можно использовать для изменения значений отдельных элементов существующего кластера без необходимости определения новых значений для всех элементов Для выполнения этого необходимо подключить изменяемый кластер к средней части терминала данной функции (рисунок диаграммы) При подключении кластера к функции она автоматически изменяет размер

для отображения каждого элемента кластера.

При создании нового кластера количество входов данной функции может быть установлено путем

растяжения терминала функции по вертикали с помощью инструмента перемещения. Если ко входу

кластер (cluster) ничего не подключено, то все другие входы терминала функции должны быть подключены.

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

Unbundle

Разделение кластера

 

Функция разделяет кластер (cluster) на его отдельные элементы. При подключении кластера к данной

функции она автоматически изменяет размер с целью отображения выходов всех элементов подключенного

кластера. Данная функция создает выходы этих элементов в том же порядке, в каком они существуют

в кластере. Число выходов этой функции должно соответствовать числу элементов кластера

Bundle By Name

Сборка кластера по имени

 

Функция заменяет один или более элементов кластера

Эта функция при выборе элементов кластера учитывает имя элемента, а не его позицию в кластере. После

подключения узла к входному кластеру с помощью строки выбрать пункт (Select Item) контекстного меню терминала имени можно выбрать имя элемента, соответствующее данному входу Эту же операцию можно выполнить и с помощью инструмента Управление,

щелкнув им на терминале имени и выбрав имя из списка

 

 

 

 

Unbundle By Name

Разделение кластера по имени

 

Функция возвращает элементы кластера с их именами

Эта функция не требует соответствия между количеством

элементов в кластере и числом ее выходов

 

Build Cluster Array

Создание массива кластеров

 

Функция преобразует каждый компонент в кластер и собирает все кластеры компонентов в массив кластеров.

Каждый кластер содержит единственный компонент. LabVIEW не позволяет создавать массив из массивов, однако с помощью данной функции можно создать массив кластеров, где каждый кластер содержит массив. Пример формирования такого массива

кластеров приведен на рисунке

Index & Bundle Cluster Array

Индексирование и формирование массива кластеров

 

Функция индексирует набор массивов и создает массив кластеров, в котором 1-й элемент (кластер)

содержит i-e элементы каждого входного массива


 

 

 

 

 

 

 

 

 

 

 

 


Информация о работе Функции работы с массивами и кластерами