Подтвердить что ты не робот

Математический старт переднего конца и калькулятор eval из командной строки

Есть ли способ запустить интерфейс математического интерфейса (GUI) из командной строки (Windows) и заставить его вычислить ноутбук без дополнительных действий пользователя?

хотя mathematica.exe принимает параметры -run и -initfile, они не работают одинаково как это происходит с math.exe. (-run '' << file.m '' хочет открыть файл с именем '' << file.m '', например)


Спасибо. Первый ответ выглядит многообещающим, однако я получаю FrontEndObject:: notavail Передняя часть недоступна

(на каждый документ это "UseFrontEnd", кстати.)

Возможно, проблема в пути, однако даже после установки $FrontEndLaunchCommand без радости.

Re: Инициализация Cell - этот простой ответ, похоже, сделает именно то, что мне нужно, за исключением того, что "вы хотите запустить инициализацию..". Если есть опция somplace, чтобы автоматически запускать ядро ​​и запускать ячейки инициализации, которые были бы действительно полезны для понимания.

Я, кстати, запускаю 6.0.

4b9b3361

Ответ 1

Ага...!!

Needs["JLink`"]; 
$FrontEndLaunchCommand="C:\\Program Files\\Wolfram Research\\Mathematica\\6.0\\Mathematica.exe";
ConnectToFrontEnd[];
UseFrontEnd[Module[{}, ...

follow..for completeness --- выше $FrontEndLaunchCommand заставляет GUI подойти, чтобы вы могли наблюдать за оценкой (что я хотел). По умолчанию используется внешний интерфейс в режиме фонового сервера, поэтому у вас есть функции переднего конца, но не можете увидеть, как он запускается.

Ответ 2

Вы можете попробовать следующее:

В C:\Program Files\Wolfram Research\Mathematica\7.0 создайте файл firstgo.m, содержащий:

UsingFrontEnd[Module[{},
file = "C:\\Temp\\Test.nb";
targetnotebook = NotebookOpen[file, Visible -> True];
SelectionMove[targetnotebook, Next, Cell];
SelectionEvaluate[targetnotebook];
NotebookSave[targetnotebook];
NotebookClose[targetnotebook];
]];

И в C:\Temp создайте файл Test.nb, содержащий:

Module[{x1=0},
Export["C:\\Program Files\\Wolfram Research\\Mathematica\\7.0\\sin.gif",
Plot[Sin[x],{x,0,6}]];
While[x1<1000000,
If[Mod[x1,100000]==0,Print["x1="<>ToString[x1]]];
x1++]]

Затем в командной консоли Windows выполните следующее:

cd C:\Program Files\Wolfram Research\Mathematica\7.0
MathKernel -noprompt -initfile firstgo.m

Вы увидите, что Test.nb создает файл с именем "sin.gif" в каталоге Mathematica. Test.nb также содержит некоторые выходные данные печати, но, несмотря на запуск в переднем конце и сохранение после прогона, не сохраняется вывод печати. Кроме того, мне еще предстоит выяснить способ выхода из ядра без прерывания процесса переднего конца.

Добавление

Если вы знаете, сколько времени займет ваш процесс, вы можете использовать пакетный файл для закрытия Mathematica, когда это будет сделано (готово для следующего прогона). Этот пример останавливается на 20 секунд до закрытия Mathematica. Обратите внимание, что firstgo.m теперь перемещается в C:\Temp для демонстрации. Создайте командный файл RunFirstGo.bat в Мои документы, содержащий:

@echo off
setlocal
PATH = C:\Program Files\Wolfram Research\Mathematica\7.0\;%PATH%
echo Launching MathKernel %TIME%
start MathKernel -noprompt -initfile "C:\Temp\firstgo.m"
ping localhost -n 20 > nul
echo Terminating MathKernel %TIME%
taskkill /F /FI "IMAGENAME eq MathKernel.exe" > nul
endlocal

RunFirstGo.bat можно запустить из командной консоли Windows следующим образом:

cd my documents
runfirstgo

В качестве альтернативы RunFirstGo.bat может запускаться как запланированная задача (через панель управления Windows).

Ответ 3

Это не FrontEnd, а оценка, но ядро. Вы можете использовать MathematicaScript для его автоматизации.

Ответ 4

Если это для конкретного ноутбука, попробовали ли вы установить соответствующие ячейки в ноутбуке, чтобы иметь свойство InitializationCell? Или вы хотите сделать это с помощью любого ноутбука? Если последний, ответ Sjoerd работает лучше.

Ответ 5

Я не знаю, активна ли эта тема, но для тех, кто остановлен при проблеме "предупреждение инициализации ячейки", вы можете изменить это на "Flase" в

Option Inspector → Параметры ноутбука → Параметры оценки → ИнициализацияCellWarning → False