Получение данных из подключений MathLink

Я пытаюсь создать библиотеку C# (DLL), которая вызывает Mathematica 8 с использованием протокола.NET/Link. В частности, я использую его для таких вещей, как БПФ и т. Д. Сейчас я использую EvaluateToOutputForm и анализирую полученную строку для двойников. Каждый раз, когда я пытаюсь использовать Evaluate() и GetDoubleArray(), он выдает сообщение об ошибке (исключение), которое я пытаюсь прочитать из данных неправильной размерности. Даже использование Evaluate("2+2") и затем GetInteger() завершается с ошибкой, что ожидающие данные не являются целыми числами (в основном).

Проблема с EvaluateToOutputForm() состоит в том, что числа, с которыми я разбираю, скажем, Abs@Fourier[data], неверны для нетривиальных (например, довольно длинных) входных данных. Я не могу сказать, что происходит не так. Может ли кто-нибудь здесь помочь мне?

1 ответ

Решение

OutputForm действительно полезен только для просмотра результата. Вы действительно хотите использовать InputForm здесь, поскольку он поддерживает полную точность чисел в результате. Синтаксис InputForm хорошо определен и разбирается. InputForm также никогда не приводит к псевдо-2D форматированию, как OutputForm.

Другие вопросы по тегам