Алгебраические типы данных в VBA - PullRequest
0 голосов
/ 06 мая 2018

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

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

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

function addition (vect1 as vector, vect2 as vector) as vector

или, может быть:

function addition (vect1() as vector, vect2() as vector) as vector()

, и он работает для каждого вектора типа (при условии, что vect1 и vect2 имеют одинаковый размер).

Я бы хотел, чтобы компоненты vector были адресованы, например, как массивы.

vect1(2,3) and not vect1.row(2).column(3)

Можно ли создать такой тип данных в VBA? Это в основном тип данных, с которым вы работаете в mathlab или octave, но я бы хотел создать его в VBA и получать значения из MS Excel.

...