Команда "nb = NotebookCreate[]" не выполняется в Mathematica?

Если я открываю блокнот в Mathematica и набираю "nb=NotebookCreate[]", он создает новое окно блокнота, как и ожидалось.

Однако, если я попробую ту же команду из C#, она завершится неудачно и не откроет новое окно ноутбука:

IKernelLink ml = MathLinkFactory.CreateKernelLink();
ml.WaitAndDiscardAnswer();
string cmd = @"nb = NotebookCreate[]";
string result = ml.EvaluateToOutputForm(cmd, 0);

// result is now "$Failed".

Обратите внимание, что если я передаю "2+2", он возвращает "4", что доказывает, что ссылка на ядро ​​Mathematica работает отлично.

1 ответ

Решение

К сожалению, кажется, что это невозможно для Mathematica v8 (и я не думаю, что многое изменилось в v9).

Насколько я понимаю, когда вы получаете доступ к ядру Mathematica из C#, это не разрешает доступ к классам Notebook, которые являются частью GUI.

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