Octave scripts and GnuPlot
Ben Abbott
bpabbott at mac.com
Mon Mar 23 06:56:32 CDT 2009
On Mar 23, 2009, at 7:23 AM, Olaf Pohlmann wrote:
> Hi,
>
> just doing my first serious steps with Octave...
> I've scanned the whole documentation and searched in the archive of
> this mailing list, but couldn't find an answer to my question. When
> calling Octave (I'm using version 3.0) from a script that contains a
> plotting command, GnuPlot just appears on the screen for a short while
> and then exits. Here is an example script I wrote, a Moebius strip:
>
> #!/usr/bin/octave -qf
>
> R = 5; # radius of the strip
> W = 2; # width of the strip
> phiSteps = 20; # resolution in phi
> ySteps = 6; # resolution in y
>
> phi = -pi:2*pi/phiSteps:pi;
> y = -W/2:W/ySteps:W/2;
>
> X = Y = Z = zeros(max(size(y)), max(size(phi)));
> for row = 1:max(size(y))
> for column = 1:max(size(phi))
> r = R - y(row) * cos(phi(column)/2);
> X(row, column) = r * cos(phi(column));
> Y(row, column) = -y(row) * sin(phi(column)/2);
> Z(row, column) = r * sin(phi(column));
> endfor
> endfor
>
> mesh(X, Y, Z);
> axis([-R, R+W/2, -2*W, 2*W, -R-W/2, R+W/2]);
> print -dpng moebius.png
>
> If I call this from the interactive shell with source('moebius.m'),
> GnuPlot stays open. Apparently the shell forks another process, since
> it isn't blocked while GnuPlot is open. Is there a way to get the same
> behavior in a script? And on the other hand: if I only want to create
> an image file, is there a way to prevent GnuPlot from being launched?
>
> I found that if I add input("Press a key..."); as last line, the
> script won't stop right away and GnuPlot stays open, so this looks
> like a valid workaround, but I don't really like it. Why does the
> input statement work only if it's the very last line? If I put it
> before the print statement, it will ask for input and GnuPlot is
> called only after that. I don't really understand what triggers the
> launch of GnuPlot, I thought is was the call of the axis command.
>
> Thanks in advance for any help.
>
>
> Regards
> Olaf
When the shell script you wrote terminats, Octave exists. When octave
exits the instance of gnuplot is terminated as well.
You'll get the same behavior from the Octave command line when you
type "exit" or "quit".
Ben
More information about the Help-octave
mailing list