Как сгладить (преобразовать в 1D) массив произвольной размерности в Labview

Пусть A будет массивом произвольной размерности (2 или 3 в моем случае). Как я могу сгладить (преобразовать в 1D) этот массив, не зная заранее количества измерений?

Если бы я знал количество измерений, я мог бы легко получить общее количество элементов (используя комбинацию «Размер массива» функция), а затем измените форму A на 1D, используя это число. К сожалению, сама функция «Размер массива» возвращает массив, количество элементов которого равно количеству измерений, что возвращает нас к исходной проблеме.

Я «решил» проблему, создав функцию (VI), которая возвращает общее количество элементов трехмерного массива (наиболее распространенный тип массивов, которые я ожидаю обрабатывать), так что я могу дать это как аргумент функции Reshape. Проблема: он не принимает 2D-массив, даже если алгоритм будет работать с таким массивом! (кажется, что в Labview элементы управления массивами строго относятся к количеству принимаемых измерений, что, например, не относится к Matlab).

Хорошим решением был бы простой способ умножить все элементы массива, заданного параметром «Размер массива», чтобы быстро получить общее количество элементов, без необходимости заключать это в подчиненный VI. В целом, нет ли простого и эффективного способа решить эту проблему? Он должен быть вполне стандартным ..

6
задан calvin tiger 13 January 2012 в 11:02
поделиться