I am trying to run a function in octave
from the command line. The function is currently run like so:
octave --silent --persist --eval \'functio
Also can try wait for key.
while (waitforbuttonpress ()==0) pause(1) end
AFAIK, the plot window is a child process of octave and therefor can only be displayed when octave is running. Even if you plot something from the "interactive" mode leave the plot open and close octave, the plot will also disappear.
What you could do is to plot to some output file like posted here:
f = figure
set(f, "visible", "off")
plot([1,2,3,4])
print("MyPNG.png", "-dpng")
The problem is that when you run from command line, when it ends, the plot windows disappear with it.
#! /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")
This saves output to MyPNG.png in the directory where it is run.
Then you might open it with a visualization program.
Another option is to add
pause
at the end of the program so it waits for user input to terminate, therefore to close the plot window.
Cheers :)
You need to select a proper graphics toolkit:
available_graphics_toolkits
ans =
{
[1,1] = fltk
[1,2] = gnuplot
}
The default is fltk
which cannot write to file without displaying the plot. However, if you select gnuplot
it will be able to write to file without displaying it first. In your file start with:
graphics_toolkit gnuplot
You can use:
waitfor(h)
at the end, which waits for you to close the figure.
Just use pause
after your plotting functions