Получение октавы для построения графика при вызове функции из командной строки - PullRequest
6 голосов
/ 27 июля 2011

Я пытаюсь запустить функцию в octave из командной строки.В настоящий момент функция выполняется так:

octave --silent --persist --eval 'function(input arguments)'

function.m содержит команду plot.Когда я вызываю octave с указанными выше параметрами командной строки, график отображается, но октава входит в интерактивный режим.Мой вопрос:

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

Ответы [ 5 ]

12 голосов
/ 30 марта 2013

Просто используйте pause после ваших функций печати

3 голосов
/ 11 февраля 2017

Вы можете использовать:

waitfor(h)

в конце, который ждет, когда вы закроете фигуру.

3 голосов
/ 03 июня 2015

Вам необходимо выбрать подходящий графический инструментарий:

available_graphics_toolkits 
ans = 
{
  [1,1] = fltk
  [1,2] = gnuplot
}

По умолчанию fltk, который не может записать в файл без отображения графика. Однако, если вы выберете gnuplot, он сможет записывать в файл, не отображая его сначала. В вашем файле начните с:

graphics_toolkit gnuplot
3 голосов
/ 27 июля 2011

AFAIK, окно графика является дочерним процессом октавы и поэтому может отображаться только во время работы октавы.Даже если вы что-то строите в «интерактивном» режиме, оставьте график открытым и закройте октаву, график также исчезнет.
Что вы можете сделать, так это нанести на какой-нибудь выходной файл, например:1004 *

f = figure
set(f, "visible", "off")
plot([1,2,3,4])
print("MyPNG.png", "-dpng")
1 голос
/ 11 декабря 2011

Проблема в том, что при запуске из командной строки, когда она заканчивается, окна графиков исчезают вместе с ней.

#! /usr/bin/octave -qf
f = figure;
set(f, "visible", "off")

t=0:0.001:5*pi;
plot(t, sin(5*t)), grid

print("MyPNG.png", "-dpng")

Сохраняет вывод в MyPNG.png в каталоге, в котором он запущен.

Тогда вы можете открыть его с помощью программы визуализации.

Другой вариант - добавить

pause

в конце программы, поэтому он ожидает завершения ввода пользователем, поэтому закрывает окно графика.

Приветствия:)

...