Сюжетные режимы (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 не потому, что он нужен для вашей проблемы, а потому, что в моей системе график по умолчанию будет другим.

введите описание изображения здесь

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