Using Octave: Difference between revisions

Jump to navigation Jump to search
877 bytes added ,  13 January 2023
Updated the package section to use Octave Packages instead of Forge (as forge is being deprecated
m (→‎Linear Algebra: Fix pre --> syntaxhighlight)
(Updated the package section to use Octave Packages instead of Forge (as forge is being deprecated)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
First, follow the [https://www.gnu.org/software/octave/doc/interpreter/Installation.html installation guide]
First, follow the installation instructions for:
to install GNU Octave on your system. Then, launch the interactive prompt by
* [[Octave for macOS|macOS]]
typing <code>octave</code> in a terminal or by clicking the icon in the programs menu.
* [[Octave for GNU/Linux|GNU/Linux]] and [[Octave for other Unix systems|other Unix systems]]
For further guidance, see the manual page on
* [[Octave_for_Microsoft_Windows|Microsoft Windows]]
[https://www.gnu.org/software/octave/doc/interpreter/Running-Octave.html Running Octave].
or consult the [https://www.gnu.org/software/octave/doc/interpreter/Installation.html GNU Octave manual] to install GNU Octave on your system.
 
Then, start the GNU Octave by clicking the icon in the programs menu or launch the interactive prompt by typing <code>octave</code> in a terminal.
See the manual page on [https://www.gnu.org/software/octave/doc/interpreter/Running-Octave.html running Octave].


[[File:GNU Octave screenshot.png|thumb|center|500px|The GNU Octave graphical user interface (GUI).]]


= Variable Assignment =
= Variable Assignment =
Line 27: Line 29:


<syntaxhighlight lang="octave">t = 99 + 1  # prints 't = 100'</syntaxhighlight>
<syntaxhighlight lang="octave">t = 99 + 1  # prints 't = 100'</syntaxhighlight>
<syntaxhighlight>t =  100</syntaxhighlight>
<syntaxhighlight lang="text">t =  100</syntaxhighlight>


<syntaxhighlight lang="octave">t = 99 + 1; # nothing is printed
<syntaxhighlight lang="octave">t = 99 + 1; # nothing is printed
disp(t);</syntaxhighlight>
disp(t);</syntaxhighlight>
<syntaxhighlight> 100</syntaxhighlight>
<syntaxhighlight lang="text"> 100</syntaxhighlight>


= Elementary math =
= Elementary math =
Line 41: Line 43:
<syntaxhighlight lang="octave">x = 3/4 * pi;
<syntaxhighlight lang="octave">x = 3/4 * pi;
y = sin (x)</syntaxhighlight>
y = sin (x)</syntaxhighlight>
<syntaxhighlight>y =  0.70711</syntaxhighlight>
<syntaxhighlight lang="text">y =  0.70711</syntaxhighlight>




Line 53: Line 55:
[https://www.gnu.org/software/octave/doc/interpreter/Linear-Algebra.html about matrices].
[https://www.gnu.org/software/octave/doc/interpreter/Linear-Algebra.html about matrices].
<syntaxhighlight lang="octave">rowVec = [8 6 4]</syntaxhighlight>
<syntaxhighlight lang="octave">rowVec = [8 6 4]</syntaxhighlight>
<syntaxhighlight>rowVec =
<syntaxhighlight lang="text">rowVec =
   8  6  4
   8  6  4
</syntaxhighlight>
</syntaxhighlight>


<syntaxhighlight lang="octave">columnVec = [8; 6; 4]</syntaxhighlight>
<syntaxhighlight lang="octave">columnVec = [8; 6; 4]</syntaxhighlight>
<syntaxhighlight>columnVec =
<syntaxhighlight lang="text">columnVec =
   8
   8
   6
   6
Line 65: Line 67:


<syntaxhighlight lang="octave">mat = [8 6 4; 2 0 -2]</syntaxhighlight>
<syntaxhighlight lang="octave">mat = [8 6 4; 2 0 -2]</syntaxhighlight>
<syntaxhighlight>mat =
<syntaxhighlight lang="text">mat =
   8  6  4
   8  6  4
   2  0  -2
   2  0  -2
Line 71: Line 73:


<syntaxhighlight lang="octave">size(mat)</syntaxhighlight>
<syntaxhighlight lang="octave">size(mat)</syntaxhighlight>
<syntaxhighlight>ans =
<syntaxhighlight lang="text">ans =
   2  3
   2  3
</syntaxhighlight>
</syntaxhighlight>


<syntaxhighlight lang="octave">length(rowVec)</syntaxhighlight>
<syntaxhighlight lang="octave">length(rowVec)</syntaxhighlight>
<syntaxhighlight>ans =  3</syntaxhighlight>
<syntaxhighlight lang="text">ans =  3</syntaxhighlight>




Line 87: Line 89:


<syntaxhighlight lang="octave">columnVec * rowVec</syntaxhighlight>
<syntaxhighlight lang="octave">columnVec * rowVec</syntaxhighlight>
<syntaxhighlight>ans =
<syntaxhighlight lang="text">ans =
   64  48  32
   64  48  32
   48  36  24
   48  36  24
Line 94: Line 96:


<syntaxhighlight lang="octave">rowVec * columnVec</syntaxhighlight>
<syntaxhighlight lang="octave">rowVec * columnVec</syntaxhighlight>
<syntaxhighlight>ans =  116</syntaxhighlight>
<syntaxhighlight lang="text">ans =  116</syntaxhighlight>


<syntaxhighlight lang="octave">columnVec'</syntaxhighlight>
<syntaxhighlight lang="octave">columnVec'</syntaxhighlight>
<syntaxhighlight>ans =
<syntaxhighlight lang="text">ans =
   8  6  4
   8  6  4
</syntaxhighlight>
</syntaxhighlight>
Line 108: Line 110:


<syntaxhighlight lang="octave">mat(2,3)</syntaxhighlight>
<syntaxhighlight lang="octave">mat(2,3)</syntaxhighlight>
<syntaxhighlight>ans = -2</syntaxhighlight>
<syntaxhighlight lang="text">ans = -2</syntaxhighlight>






= Control flow wih loops =
= Control flow with loops =


Octave supports <code>for</code> and <code>while</code> loops, as well as other control flow
Octave supports <code>for</code> and <code>while</code> loops, as well as other control flow
Line 126: Line 128:
k = 1;
k = 1;
step = 2;
step = 2;
while (k <= (100-step))
while (k <= 100)
   y(i) = k^2;
   y(k) = k^2;
   k = k + step;
   k = k + step;
endwhile</syntaxhighlight>
endwhile</syntaxhighlight>


= Vectorization =
= Vectorization =
Line 156: Line 156:
[https://www.gnu.org/software/octave/doc/interpreter/Two_002dDimensional-Plots.html about plotting].
[https://www.gnu.org/software/octave/doc/interpreter/Two_002dDimensional-Plots.html about plotting].


<syntaxhighlight lang="octave">plot (i/10, w);
<syntaxhighlight lang="octave">plot (i / 10, w);
title ('w = sin(i/10)');
title ('w = sin (i / 10)');
xlabel ('i ÷ 10');
xlabel ('i / 10');
ylabel ('w');</syntaxhighlight>
ylabel ('w');</syntaxhighlight>


<img src="octave_basics-1.png" alt="octave_basics-1.png">
[[File:Using octave-1.png|thumb|center]]
 
 


= Strings =
= Strings =
Line 176: Line 174:
[firstString, secondString] # concatenate both strings
[firstString, secondString] # concatenate both strings
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight>ans = hello world!</syntaxhighlight>
<syntaxhighlight lang="text">ans = hello world!</syntaxhighlight>


<syntaxhighlight lang="octave">fprintf ("%s %.10f \n", "The number is:", 10)</syntaxhighlight>
<syntaxhighlight lang="octave">fprintf ("%s %.10f \n", "The number is:", 10)</syntaxhighlight>
<syntaxhighlight>The number is: 10.0000000000</syntaxhighlight>
<syntaxhighlight lang="text">The number is: 10.0000000000</syntaxhighlight>




Line 207: Line 205:
endfor</syntaxhighlight>
endfor</syntaxhighlight>


<syntaxhighlight>i=1:   
<syntaxhighlight lang="text">i=1:   
i=2:   
i=2:   
i=3: Fizz  
i=3: Fizz  
Line 241: Line 239:




= Octave forge packages =
= Octave packages =


Community-developed packages can be added from the
Community-developed packages can be added from the
[http://octave.sourceforge.net/index.html Octave Forge] website to extend
[https://gnu-octave.github.io/packages/ Octave Packages] website to extend
the functionality of Octave’s core library.  (Matlab users: Forge packages
the functionality of Octave’s core library.  (Matlab users: Packages
act similarly to Matlab’s toolboxes.)  The [https://www.gnu.org/software/octave/doc/interpreter/XREFpkg.html pkg] command is used
act similarly to Matlab’s toolboxes.)  The [https://www.gnu.org/software/octave/doc/interpreter/XREFpkg.html pkg] command is used
to manage these packages.  For example, to use the image processing library
to manage these packages.  For example, to use the image processing library visit its [https://gnu-octave.github.io/packages/image/ page on Octave Packages,] copy the install command and run it in octave
from the Forge, use:


<syntaxhighlight lang="octave">pkg install -forge image # install package
<syntaxhighlight lang="octave">pkg install "https://downloads.sourceforge.net/project/octave/Octave%20Forge%20Packages/Individual%20Package%20Releases/image-2.14.0.tar.gz" # install package
pkg load image          # load new functions into workspace
pkg load image          # load new functions into workspace
</syntaxhighlight>
</syntaxhighlight>


[https://www.gnu.org/software/octave/doc/interpreter/Packages.html Read more about packages].
[https://www.gnu.org/software/octave/doc/interpreter/Packages.html Read more about packages].
= Octave User Codes =
There are also User Codes available for GNU Octave which are not part of the core program or any of the packages.
[[:Category:User Codes|See Category User Codes]].


[[Category:Tutorials]]
[[Category:Tutorials]]
Anonymous user

Navigation menu