Установка ComplexType в MathLink - PullRequest
0 голосов
/ 04 мая 2011

У меня есть еще один.Я пытался использовать ml.ComplexType = System.Type.GetType("Complex"); в C # с Mathematica MathLink, но когда я попытался прочитать числа с помощью GetComplexArray, он выдал исключение, заявив, что я должен использовать метод IMathLink.SetComplexType(), который, по-видимому, не существует.

Есть ли способ сделать это без разбора строк, так как я не могу, насколько я понимаю, сделать это правильно?

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Что касается кого-то еще, я нашел ответ на этот вопрос самостоятельно.

Что вы делаете, это создаете фиктивный экземпляр любого класса, который имеет необходимые свойства / методы (например, System.Numerics.Complex), здесь с именем myVar.Предполагая, что ml является экземпляром IKernelLink, позвоните

ml.ComplexType = myVar.GetType();

. Затем вы можете использовать ml.GetComplex() или ml.GetComplexArray().

1 голос
/ 04 мая 2011

Документация для SetComplexType находится здесь: http://reference.wolfram.com/mathematica/NETLink/ref/SetComplexType.html. Вы также можете найти это, вставив «NETLink / ref / SetComplexType» в центр документации Mathematica.Оба этих источника указывают, что вы должны выполнить Needs["NETLink] "перед использованием в Mathematica.

...