Я пытаюсь запустить октавный скрипт в Cmder. Проблема, с которой я сталкиваюсь, заключается в том, чтобы удерживать окно рисунка после выполнения скрипта. Вот весь скрипт, который я запускаю:
N=10^6;
dt=1;
beta=1.4;
mi=1.3/365;
gamma = 1/7;
I(1)=10;
S(1)=N-I(1);
for n=2:600
I(n) = I(n-1)+dt*I(n-1)*(beta*(S(n-1)/N)-gamma-mi);
S(n) = S(n-1)+dt*(mi*N-S(n-1)*(I(n-1)*beta/N+mi));
endfor
x=S/N;
y=I/N;
R=1-x-y;
vreme=1:1:600;
figure 1, plot(vreme,y,"r","linewidth",1.5,
vreme,R,"g","linewidth",1.5,
vreme,x,"b","linewidth",1.5);
axis([0 200 0 1])
leg=legend("I","R","S")
set(leg,"fontsize",15);
grid on
hold on
После запуска скрипта в octave-gui или octave-cli цифра остается. Запуск его в Cmder не работает.
Вот изображение рисунка, показывающего при открытии интерактивного режима октавы:
Я хотел бы, чтобы рисунок показывал вызов скрипта (как в первой команде) без перехода в интерактивный режим (скажем, с --persist
). Как я могу сделать рисунок, показывающий только вызов octave C:\Users\Dusan\Desktop\SIR1.m
?
Я пытался использовать pause
, но это не загружает фигуру, и если я пытаюсь взаимодействовать с ней, она вылетает.
pause
на определенный период времени. - person Dušan Stokić   schedule 06.07.2021waitfor( gcf )
, как указано в дубликате? Это действительно канонический способ держать сценарий открытым, пока фигура не будет закрыта. Или это не то, что вы пытаетесь сделать? (если ваша цифра «пустая», попробуйтеdrawnow
илиrefresh
перед командой ожидания) - person Tasos Papastylianou   schedule 07.07.2021waitfor(gcf)
даже не показывает цифру, когда я запускаю ее в cmder. - person Dušan Stokić   schedule 07.07.2021drawnow; waitfor(gcf)
в конце работает по назначению. Скрипт запускался следующим образом:"C:\Program Files\GNU Octave\Octave-6.2.0\mingw64\bin\octave-gui.exe" waitfortest.m
. Вы делаете что-то по-другому? (PS, в моем случаеdrawnow
на самом деле не было нужно, но я добавляю его здесь на всякий случай) - person Tasos Papastylianou   schedule 08.07.2021