octave:octave
This is an old revision of the document!
Table of Contents
Octave syntax and library overview
Installing packages
Fetch the package files from octaveforge. Then create (or add to) the file ~/.octaverc the following content:
addpath(genpath('~/octave'))
And run pkg install packagename-1.0.0.tar.gz
or whatever the package is called from inside octave.
Now the package should be available.
plotting
h = [1,2,3,4,5]; plot(h); xlabel("some numbers"); print("myfile.pdf", "-dpdf");
This code plots a a vector with a label on the x-axis, and exports it to a pdf file.
function
function retval = myfunction(param1, param2) retval = param1 + param2; end;
strings
mystring = 'hello world'; % create string sizeof(mystring) % get length of string mystrilyng2 = [ mystring, 'fisk']; % concatenate two strings
sizeof on works in octave. in matlab the length of a string cannot be obtained!
string array
myemptyarray = {}; % create empty string array. myarray = { 'hello', 'world' }; % create array with two strings. myarray(1) % prints 'hello' myarray(3) = 'blah'; %inserts another string into the array. sizeof(myarray) % get number of elements sizeof(myarray(1)) %get length of first string % Iterate strings in string array for str = myarray disp(str) end
Note: Arrays are 1-based, not 0-based as they usually are in real programming languages. Note: sizeof is an octave-only function. size can be used to get the array size in matlab.
if then else
for while
switch case
yesno = "yes" switch yesno case {"Yes" "yes" "YES" "y" "Y"} value = 1; case {"No" "no" "NO" "n" "N"} value = 0; case "blah" value = 42; otherwise error ("invalid value"); endswitch
Note: In matlab the endswitch
should be replaced by end
Links
More complex examples
rootfolder = pwd % Print Working Directory - specifies root folder so we don't have to cd for s=scans scanfolder=sprintf('ret_scan%02d', s) folders=dir([rootfolder,'/',scanfolder,'/*_bg']) numfolders=size(folders); folderiterator = 1:numfolders(1); for folder=folderiterator files=dir([rootfolder,'/',scanfolder,'/',folders(folder).name,'/*.mat']) numfiles=size(files); fileiterator = 1:numfiles(1); for file=fileiterator file filename=[rootfolder,'/',scanfolder,'/',folders(folder).name,'/',files(file).name] %filename load (filename) % Loads the bg-file (no laser) end; end; end;
octave/octave.1240485152.txt.gz · Last modified: 2009/04/23 13:12 by deva