From Octave
Jump to navigation Jump to search



Where do I get additional help?[edit]



What is Octave?[edit]



What is Octave Forge?[edit]


Who uses Octave?[edit]

A huge number of people ranging from students to researchers involved in various fields such as statistics,Machine Learning, data analytics, etc. Universities use it for research and teaching, companies of all sizes for development and individuals for certain private purposes. See Who Uses Octave? for more clarity.

Who develops Octave?[edit]

Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and John W. Eaton at the University of Texas. John W. Eaton is the original author of Octave, starting full-time development in February 1992. He is still the primary maintainer. The community of users and developers has in addition contributed some code and fuels the discussion on the mailing lists help@octave.org (user forum), maintainers@octave.org (development issues). Since 2011, GNU Octave regularly participates in Summer of Code events as a mentor organisation. As part of those events, several students contributed to Octave by helping in removal of bugs and development of new features.

Why "Octave"?[edit]


Why "GNU" Octave?[edit]


The Free Software Foundation (FSF) is the principal organization that has sponsored the GNU Project.


How can I cite Octave?[edit]


 John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2021).
 GNU Octave version 6.2.0 manual: a high-level interactive language for numerical computations.
 URL https://octave.org/doc/v6.2.0/

A BibTeX entry for LaTeX users is:

   title     = {{GNU Octave} version 6.2.0 manual: a high-level interactive language for numerical computations},
   year      = {2021},
   url       = {https://octave.org/doc/v6.2.0/},


Note that there are two reasons for citing the software used. One is giving recognition to the work done by others which we have already addressed to. The other is giving details on the system used so that experiments can be replicated. For this, you should cite the version of Octave and all packages used (you can get this information using the ver command), as well as any details of your setup as part of your Methods. In addition, you should make your source available as well. See How to cite and describe software for more details and an in depth discussion for the same.

What documentation exists for Octave?[edit]


How can I report a bug in Octave?[edit]

Please read our website http://www.octave.org/bugs.html.

Common problems[edit]

Octave does not start[edit]

The following steps have been the solution to several bug reports and help requests. Please try them before asking for further support. If nothing below helps, please give us the following information:

MS Windows[edit]

  • After Octave upgrade the GUI does not open / shuts down immediately.
    • Solution:
      • Version 5.2.0 and older: Delete the folder C:\Users\YOUR_USER_NAME\.config\octave
      • Version 6.1.0 and newer: Delete the folder %APPDATA%\octave, which generally is located at C:\Users\YOUR_USER_NAME\AppData\Roaming\octave
  • Missing/conflicting files.
    • Solution: Remove/Uninstall all existing Octave versions. Restart the system. Install GNU Octave again.
  • Permission errors
    • Solution 1: Octave on MS Windows uses VBS scripts to start the program. You can test whether your system is blocking VBS scripts by doing the following:
      1. Using Notepad or another text editor, create a text file containing only the text:
        msgbox("This is a test script, Click OK to close")
      2. Save the file on your Desktop with the name testscript.vbs (be sure that the editor didn't end it in .txt or .vbs.txt).
      3. Double click the file. If scripts can run, a popup window will appear with that message.
        • If the file opens in notepad or an editor, it means it still ended in .txt. MS Windows insecurely hides file extensions by default. To show file extensions follow these instructions at Microsoft.com.
        • If both testscript.vbs and octave.vbs open a text- or other editor, it means your MS Windows file associations have .vbs files associated with another program. To fix this, right click the .vbs file, select "Open With", select "Choose Another App", check the box that says "Always use this app to open .vbs files". Finally, select "Microsoft Windows Based Script Host" from the list. If it is not in the list, select "More apps". If still not there, select "Look for Another App on this PC" and navigate to C:\Windows\System32\wscript.exe, select it, and select "Open". If wscript is still not present you will need to seek assistance installing missing MS Windows components.
      4. Try moving testscript.vbs to another location, such as a C:\temp folder. Additionally try to move testscript.vbs in the Octave installation folder containing octave.vbs and see if VBS scripts can be run there.
      5. If testscript.vbs doesn't run in any of those locations, then scripting appears to be disabled or blocked on your system. If testscript.vbs runs in some locations but not others, there there may be other security permissions errors to be solved. If testscript.vbs runs in the same folder as octave.vbs, but directly double-clicking on octave.vbs does not start Octave, then there appears to be some problem other than script permissions.
    • Solution 2: Consult your malware detection (a.k.a. AntiVirus) software, if files are blocked.
    • Solution 3: Did you install Octave on a network-drive? Do you have the execution permissions?
    • Solution 4: Is your computer managed by your company? Does your administrator prohibit script execution?






How do I get sound input or output in MS Windows?[edit]


I have problem X using the latest Octave version[edit]


  • The latest stable version is 6.2.0. Be aware that you may still have an older version due to whatever distribution method you are using. To get a newer stable version for your system see the following as in accordance to your Operating system: GNU/Linux, macOS, or Windows.

If your problem still persists with the "latest version", then please report a bug or ask for help at help@octave.org. Otherwise, don't be surprised if volunteers are less inclined to help you with a problem that only exists in an older version of Octave and is already fixed in a newer version.

Why is Octave's floating-point computation wrong?[edit]

Floating-point arithmetic is an approximation in binary to arithmetic on real or complex numbers. Just like you cannot represent 1/3 exactly in decimal arithmetic (0.333333... is only a rough approximation to 1/3 for any finite number of 3s), you cannot represent some fractions like exactly in base 2. In binary, the representation to one tenth is where the bar indicates that it repeats infinitely (like how in decimal). Because this infinite repetition cannot be represented exactly with a finite number of digits, rounding errors occur for values that appear to be exact in decimal but are in fact approximations in binary, such as for example how 0.3 - 0.2 - 0.1 is not equal to zero.

In addition, some advanced operations are computed by approximation and there is no guarantee for them to be accurate, see Table-maker's dilemma for further references. Their results are system-dependent.


Another approach to deal with rounding errors is interval arithmetic with the Interval package or symbolic computations with the Symbolic package. These approaches are likely to be slower, since not all operations can be performed on Hardware like pure floating-point arithmetic.

To learn more about floating-point arithmetic, consult this Wikipedia article or the classical reference by David Goldberg What Every Computer Scientist Should Know About Floating-Point Arithmetic.





Plot hangs and makes the GUI unresponsive[edit]



If Octave shows an error message about invalid call to script .../close.m or invalid use of of script .../close.m in index expression, it means that you have created a script called close.m that is overriding the built-in Octave function close. Octave functions and scripts share the same global namespace. It is best to avoid creating your own scripts or functions that have the same name as an Octave function as to avoid this error regarding the invalid call to script or invalid use of script in index expression.

Licensing issues[edit]





No. Instead of asking us to change the licensing terms for Octave, we recommend that you release your program under terms that are compatible with the GPL, this way the free software community can be benefited from your work the same as you were/have benefited from the work of all the people who have contributed to Octave.


No. The original reason for implementing the MEX interface for Octave was to allow Octave to run free software that uses MEX files (the particular goal was to run sundialsTB in Octave). The intent was to liberate that software from Matlab and increase the amount of free softwares available to Octave users & not to enable people to write proprietary code for Octave. For the good of the community, we strongly encourage users of Octave to release the code they write for Octave under terms that are compatible with the GPL.



—§ 2(a)(iii) Terms of Use



How can I install Octave on Windows?[edit]

So as to install GNU-Octave for Windows O.S, refer to : Octave for Microsoft Windows

How can I install Octave on MacOS?[edit]

So as to install GNU-Octave for MacOS, refer to : Octave for macOS


So as to install GNU-Octave on GNU/Linux, refer to: Octave for GNU/Linux

How to install Octave on Android OR What is the Octave app available in the Google Play store?[edit]

There is an unofficial Octave app available for Android in the Google Play store. Please see Octave for Android for further information.

How can I install Octave on platform X?[edit]


What Octave version should I use?[edit]

For general use, it is recommended to use the latest stable version of Octave (currently 6.2.0), available from http://www.octave.org/download.html. For development and bleeding-edge features one can obtain the development source code from the Mercurial repository https://hg.savannah.gnu.org/hgweb/octave/graph/.


On what platforms does Octave run?[edit]


How can I obtain Octave's source code?[edit]







For a list of build dependencies, refer to Building.


No. The development is done primarily with GCC, so you may hit some incompatibilities. Octave is intended to be portable to any standard conforming compiler (for example clang is known to work as well). If you face any difficulties that you think are bugs, please report them to the bug tracker, or ask for help on the help@octave.org mailing list.

What's new in Octave?[edit]


  • What's new in the next version of Octave?
  • What was new in Octave Version X.Y.Z?

Packages and Octave Forge[edit]












  • Fedora: octave-devel




Octave usage[edit]

How do I execute an Octave script?[edit]




run ("Script Name With Spaces.m")
run ("/opt/local/foo.m")


  $ octave the-script.m arg1 arg2


  $ ./the-script arg1 arg2


How do I close a figure?[edit]




>> format long
>> pi
pi = 3.14159265358979
>> format short
>> pi
pi = 3.1416




Here is a awk script to get a rainbow color map

#!/bin/awk -f
   n = substr($1, 4, 1);
   if (n == 0)
   else if (n == 1)
   else if (n == 2)
   else if (n == 3)
   else if (n == 4)
   else if (n == 5)
   else if (n == 6)
   else if (n == 7)
   else if (n == 8)
 { print; }

How do I tell if a file exists?[edit]


ans = 2


plot (sin (1:100));
print -deps "/tmp/sin.eps"

One can set that behavior as default:


How do I increase Octave's precision?[edit]


intmax ("uint64") 18,446,744,073,709,551,615 2^64-1
intmax ("int64") 9,223,372,036,854,775,807 2^63-1
flintmax ("double") 9,007,199,254,740,992 2^53
flintmax ("single") 16,777,216 2^24


>> uint64 (2^53 + 1)
ans = 9007199254740992
>> uint64 (2^53) + 1
ans = 9007199254740993





You can't. Matlab P-files (files with a .p file extension), also known as P-code, are obfuscated files that cannot be run outside of Matlab itself. The original source Matlab m-files that were used to generate these P-files should be used in Octave instead.


How does Octave solve linear systems?[edit]


How do I do X?[edit]


 >> lookfor correlation
 corr                Compute matrix of correlation coefficients.
 corrcoef            Compute a matrix of correlation coefficients.
 spearman            Compute Spearman's rank correlation coefficient RHO.


 >> corr
 corr     corrcoef

Differences between Octave and Matlab

See Differences between Octave and Matlab.


Does Octave have a GUI?[edit]




  • Xoctave, which is proprietary and commercial.

Graphics: backends and toolkits[edit]

What are the supported graphics backends?[edit]

  • gnuplot via the gnuplot graphics toolkit

How do I change my graphics toolkit?[edit]

There are three commands to deal with graphics toolkits:

available_graphics_toolkits lists all available graphics toolkits
graphics_toolkit displays the currently used graphics toolkit








When will feature X be released or implemented?[edit]


How can I get involved in Octave development?[edit]

See Developer FAQ.