FAQ: Difference between revisions

Jump to navigation Jump to search
107 bytes removed ,  23 October 2019
(→‎Common problems: add common error about script overriding built-in function)
(5 intermediate revisions by 3 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}}/},
   }
   }
Line 124: Line 124:
==How can I install Octave on Android / what is this Octave app in the Google Play store?==
==How can I install Octave on Android / what is this Octave app in the Google Play store?==


There is an '''unofficial''' Octave app available for Android in the Google Play store.  This Octave app is no longer freely available and has become [https://en.wikipedia.org/wiki/Shareware#Nagware "nagware"].  This is a sad turn of events.  Please see [[Android]] for more information.
There is an '''unofficial''' Octave app available for Android in the Google Play store.  Please see [[Octave for Android]] for more information.


==How can I install Octave on platform X?==
==How can I install Octave on platform X?==
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 729: 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 926: Line 926:
   demo multinom
   demo multinom


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


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

Navigation menu