Сюжетные режимы (shell/ASCII) с использованием скриптов Octave
Когда я запускаю Octave в интерактивном сеансе оболочки, я знаю, что могу отображать графики символьного режима / ASCII, как обсуждалось здесь: Графики символьного режима (оболочки) с Matlab / Octave?
Моя проблема в том, что я хотел бы получить такой вывод, когда мой октавный скрипт выполняется не в интерактивном режиме. То есть я хотел бы иметь возможность запускать что-то вроде следующего:
#!/usr/bin/octave -qf
plot(sin(0:7))
И иметь вывод в соответствии с:
1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> + ---+ + + + + >
> +--- | >
> | | >
> | | >
0.5 >+ | | +>
> | | | >
> | | | >
> | | | >
>| + | >
0 >+ | | +>
> | | >
> | | >
> | + >
> | | >
> | | >
-0.5 >+ | | +>
> | | >
> +--- | >
> -- | >
> + + + + -+| + >
-1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1 2 3 4 5 6 7 8
Я получаю этот вывод, если я открываю октаву в сеансе ssh, а затем на терминале октавы вызываю мой скрипт:
octave:1> testplot.m
Но что я действительно хочу сделать, так это вызвать testplot.m из других скриптов bash, таких как:
$ ./testplot.m
или же
$ octave testplot.m
Ни один из которых на самом деле не дает никакого сюжета.
Я заметил, что вывод интерактивного сеанса, кажется, автоматически масштабируется с размером моего окна терминала, поэтому в этом смысле это зависит от сеанса.
Спасибо за любую помощь!
Уточнение - я знаю, как создавать графики с отключенной видимостью фигуры, но я стараюсь не загружать отдельно файлы графиков.
Я также обнаружил эту тему: инструмент построения графиков на основе Unix для ASCII из командной строки, но eplot, похоже, давал мне ошибки (вероятно, ошибка пользователя, неправильное форматирование данных и т. Д., Но я точно не знаю), и я бы предпочитаю держать вещи в октаве - октава уже делает именно то, что я хочу, пока я в интерактивном сеансе!
1 ответ
Все, что вам нужно сделать, это добавить pause
в конце вашего скрипта октавы.
Дело в том, что ваш сценарий уже отображает график в конце, но программа заканчивается сразу после того, как вы позвоните plot
, поэтому программа завершается, и вы даже не замечаете сюжет.
На картинке ниже я добавил настройку graphics_toolkit и тип терминала gnuplot не потому, что он нужен для вашей проблемы, а потому, что в моей системе график по умолчанию будет другим.