=====Octave syntax and library overview===== ====Installing packages==== Fetch the package files from [[http://octave.sourceforge.net/|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. h=wavread('h.wav'); hfft=abs(fft(h)); semilogx(hfft(1:end/2)) This code loads an audiofile, and plots its frequency spectrum on a logartihmical scale. ====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==== a = 1; if a == 1 "a is one" end; if a == 2 "a is two" else "a is not two" end; ====for while==== list = 1:10 for i = list i end; a = 1; while a < 11 a a = a + 1; end; ====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==== * http://www.mathworks.com/access/helpdesk/help/techdoc/index.html ====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;