Это можно сделать с минимальным битом VBA, если вы напишите (в VBA) функцию real_mat()
которая превращает вашу комплексную матрицу {a}
в матрицу, в два раза большую: {real(a),-im(a);im(a),real(a)}
и другая функция complex_mat
которая берет реальный мат и преобразует его обратно в исходную сложную форму, тогда все функции рабочего листа Excel, которые вы можете выполнять с реальными матрицами, можно выполнить с помощью real_mat()
и они работают как эквивалентные функции на комплексные значения.
Он работает для +
, -
, mmult
, minverse
и mtranspose
, обратите внимание, что mtranspose
типа real_mat()
выполняет комплексное сопряжение, что обычно и требуется.
Например, вы бы суммировали диапазон a
и b
комплексных чисел и инвертировали результат, используя формулу =complex_mat(minverse(real_mat(a) + real_mat(b)))