FAQ: Difference between revisions

Jump to navigation Jump to search
575 bytes added ,  13 June 2019
m
(8 intermediate revisions by 4 users not shown)
Line 22: Line 22:
The GNU Octave distribution includes a [http://www.octave.org/octave.pdf 1000+ page Texinfo manual].  Access to the complete text of the manual is available via the <code>doc</code> command at the GNU Octave prompt.
The GNU Octave distribution includes a [http://www.octave.org/octave.pdf 1000+ page Texinfo manual].  Access to the complete text of the manual is available via the <code>doc</code> command at the GNU Octave prompt.


==What is Octave-Forge?==
==What is Octave Forge?==


[https://octave.sourceforge.io/ Octave-Forge] is a collection of [[packages]] for GNU Octave, something similar to the Matlab toolboxes.  When talking about the two projects at the same time, GNU Octave is usually referred to as Octave core (or just "core").  Octave-Forge also serves as a test bed for code that may eventually end up in the core, and distributes binaries for systems with a lack of developers tools (mainly Windows).
[https://octave.sourceforge.io/ Octave Forge] is a collection of [[packages]] for GNU Octave, something similar to the Matlab toolboxes.  When talking about the two projects at the same time, GNU Octave is usually referred to as Octave core (or just "core").  Octave Forge also serves as a test bed for code that may eventually end up in the core, and distributes binaries for systems with a lack of developers tools (mainly Windows).


==Who uses Octave?==
==Who uses Octave?==
Line 50: Line 50:
Octave is free software and does not legally bind you to cite it.  However, we have invested a lot of time and effort in creating GNU Octave, and we would appreciate if you would cite if you used.  To cite GNU Octave in publications use:
Octave is free software and does not legally bind you to cite it.  However, we have invested a lot of time and effort in creating GNU Octave, and we would appreciate if you would cite if you used.  To cite GNU Octave in publications use:


   John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2017).
   John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring ({{Release Year}}).
   GNU Octave version {{Release}} manual: a high-level interactive language for numerical computations.
   GNU Octave version {{Release}} manual: a high-level interactive language for numerical computations.
   URL https://www.gnu.org/software/octave/doc/v{{Release}}/
   URL https://www.gnu.org/software/octave/doc/v{{Release}}/
Line 59: Line 59:
     title    = {{GNU Octave} version {{Release}} manual: a high-level interactive language for numerical computations},
     title    = {{GNU Octave} version {{Release}} manual: a high-level interactive language for numerical computations},
     author    = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
     author    = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
     year      = {2017},
     year      = <span>{</span>{{Release Year}}},
     url      = {https://www.gnu.org/software/octave/doc/v{{Release}}/},
     url      = {https://www.gnu.org/software/octave/doc/v{{Release}}/},
   }
   }


Run <code>citation</code> at the Octave prompt for details on how to best cite the Octave version you are running.  Certain Octave packages also have recommended citations in which case use <code>citation package_name</code>.
Run {{manual|citation}} at the Octave prompt for details on how to best cite the Octave version you are running.  Certain Octave packages also have recommended citations in which case use <code>citation package_name</code>.


Note that there are two reasons for citing the software used.  One is giving recognition to the work done by others which we already addressed.  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 <code>ver</code> command), as well as any details of your setup as part of your Methods.  In addition, you should make your source available.  See [http://software.ac.uk/so-exactly-what-software-did-you-use How to cite and describe software] for more details and an in depth discussion.
Note that there are two reasons for citing the software used.  One is giving recognition to the work done by others which we already addressed.  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 <code>ver</code> command), as well as any details of your setup as part of your Methods.  In addition, you should make your source available.  See [http://software.ac.uk/so-exactly-what-software-did-you-use How to cite and describe software] for more details and an in depth discussion.
Line 69: Line 69:
==What documentation exists for Octave?==
==What documentation exists for Octave?==


Besides this wiki, the GNU Octave distribution includes a [http://www.octave.org/doc/interpreter 1000+ page Texinfo manual] ([http://www.octave.org/octave.pdf PDF]).  Access to the complete text of the manual is available via the <code>doc</code> command at the GNU Octave prompt.  If you have problems using this manual, or find that some topic is not adequately explained, indexed, or cross-referenced, please report it on http://bugs.octave.org.
Besides this wiki, the GNU Octave distribution includes a [http://www.octave.org/doc/interpreter 1000+ page Texinfo manual] ([http://www.octave.org/octave.pdf PDF]).  Access to the complete text of the manual is available via the {{manual|doc}} command at the GNU Octave prompt.  If you have problems using this manual, or find that some topic is not adequately explained, indexed, or cross-referenced, please report it on http://bugs.octave.org.


==How can I report a bug in Octave?==
==How can I report a bug in Octave?==
Line 134: Line 134:
For general use, it is recommended to use the latest stable version of Octave (currently {{Release}}), 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/.
For general use, it is recommended to use the latest stable version of Octave (currently {{Release}}), 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/.


The used version of Octave is available via the <code>ver</code> command and a list of user-visible changes since the last release is available via the <code>news</code> command at the GNU Octave prompt.
The used version of Octave is available via the {{manual|ver}} command and a list of user-visible changes since the last release is available via the {{manual|news}} command at the GNU Octave prompt.


==On what platforms does Octave run?==
==On what platforms does Octave run?==
Line 144: Line 144:
The latest version of the Octave source code (and older versions) is available from:
The latest version of the Octave source code (and older versions) is available from:


* http://www.octave.org/download.html
* https://www.octave.org/download.html
* https://ftp.gnu.org/gnu/octave/
* https://ftp.gnu.org/gnu/octave/


Line 213: Line 213:
* Many optimizations of the accumarray function
* Many optimizations of the accumarray function
* Sparse matrix indexing has been rewritten for speed
* Sparse matrix indexing has been rewritten for speed
* The pkg command now accepts a -forge option to pull packages directly from Octave-forge
* The pkg command now accepts a -forge option to pull packages directly from Octave Forge


==What's new in version series 3.2.X of Octave==
==What's new in version series 3.2.X of Octave==
Line 236: Line 236:
* [http://hg.savannah.gnu.org/hgweb/octave/file/83792dd9bcc1/etc/NEWS.3 NEWS.3] for the 3.X.Y series
* [http://hg.savannah.gnu.org/hgweb/octave/file/83792dd9bcc1/etc/NEWS.3 NEWS.3] for the 3.X.Y series


=Packages and Octave-Forge=
=Packages and Octave Forge=


==How do I install or load all Octave-Forge packages?==
==How do I install or load all Octave Forge packages?==


Do not do it!  Really, there is no reason to do this.  Octave has many packages for different needs and is unlikely that you need all of them.  You either have a small set of required packages, in which case
Do not do it!  Really, there is no reason to do this.  Octave has many packages for different needs and is unlikely that you need all of them.  You either have a small set of required packages, in which case
Line 492: Line 492:


If the Qt graphics toolkit is used and "plot" is used for the first time, the fontconfig scanner searches the font directory to build a font cache. This can take up to 3min on slow CPUs. See {{bug|45458}}
If the Qt graphics toolkit is used and "plot" is used for the first time, the fontconfig scanner searches the font directory to build a font cache. This can take up to 3min on slow CPUs. See {{bug|45458}}
==Error message about invalid call to script or invalid use of script in index expression==
If Octave shows an error message about {{Codeline|invalid call to script .../close.m}} or {{Codeline|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 {{Codeline|close}}. Octave functions and scripts share the samem global namespace. It is best to avoid creating your own scripts or functions that have the same name as an Octave function.


=Differences between Octave and Matlab=
=Differences between Octave and Matlab=
Line 725: Line 729:
Octave has a lisp-like {{Codeline|unwind_protect}} block that allows blocks of code that terminate in an error to ensure that the variables that are touched are restored. You can do something similar with try/catch combined with {{Codeline|rethrow (lasterror ())}} in Matlab, however rethrow and lasterror are only available in Octave 2.9.10 and later. MATLAB 2008a also introduced {{Codeline|OnCleanUp}} that is similar to {{Codeline|unwind_protect}}, except that the object created by this function has to be explicitly cleared in order for the cleanup code to run.
Octave has a lisp-like {{Codeline|unwind_protect}} block that allows blocks of code that terminate in an error to ensure that the variables that are touched are restored. You can do something similar with try/catch combined with {{Codeline|rethrow (lasterror ())}} in Matlab, however rethrow and lasterror are only available in Octave 2.9.10 and later. MATLAB 2008a also introduced {{Codeline|OnCleanUp}} that is similar to {{Codeline|unwind_protect}}, except that the object created by this function has to be explicitly cleared in order for the cleanup code to run.


Note that using try/catch combined with {{Codeline|rethrow (lasterror ())}} can not guarantee that global variables will be correctly reset, as it won't catch user interrupts with Ctrl-C. For example
Note that using try/catch combined with {{Codeline|rethrow (lasterror ())}} cannot guarantee that global variables will be correctly reset, as it won't catch user interrupts with Ctrl-C. For example


<syntaxhighlight lang="Matlab">
<syntaxhighlight lang="Matlab">
Line 922: Line 926:
   demo multinom
   demo multinom


===Powerfull assert===
===Powerful assert===


Function assert have extended input possibilities.
Function assert have extended input possibilities.

Navigation menu