[[Category:Software]] {{Draft}} [https://octave.org/ GNU Octave] is a scientific programming language that has a Powerful mathematics-oriented syntax with built-in 2D/3D plotting and visualization tools. It is free and open-source software (FOSS) and is Drop-in compatible with many [[MATLAB]] scripts. == Running Octave code == Consider the following example code: {{File |name=octave_2d_plot.m |lang="matlab" |contents= x = -10:0.1:10; y = sin (x); plot (x, y); title ("Simple 2-D Plot"); xlabel ("x"); ylabel ("sin (x)"); print -dpng octave_2d_plot.png quit }} Here is a simple Slurm script that you can use to run octave_2d_plot.m: {{File |name=octave_job_1.sh |lang="bash" |contents= #!/bin/bash -l #SBATCH --time=0-00:10 #SBATCH --ntasks=1 #SBATCH --cpus-per-task=1 #SBATCH --mem=4000M module load octave/5.2.0 gnuplot/5.4.2 octave --no-gui octave_2d_plot.m }} Note that Octave relies on the Gnuplot package to generate plots. === Running MATLAB code === Octave can often be used as a drop-in replacement for running MATLAB scripts, like the cosplot.m example on our [[MATLAB#Running_a_MATLAB_code|MATLAB]] page: {{File |name=octave_job_1.sh |lang="bash" |contents= #!/bin/bash -l #SBATCH --time=0-00:10 #SBATCH --ntasks=1 #SBATCH --cpus-per-task=1 #SBATCH --mem=4000M module load octave/5.2.0 gnuplot/5.4.2 octave --no-gui --traditional --eval "cosplot" }} == Further reading == * [https://octave.org/ GNU Octave Homepage] * [https://docs.octave.org/v5.2.0/ Documentation for GNU Octave v5.2.0] (available in StdEnv/2020) * [https://docs.octave.org/v4.2.2/ Documentation for GNU Octave v4.2.2] (available in StdEnv/2018.3)