70 likes | 352 Views
MATLAB: An introduction. Markus Bauer, UCL Institute of Cognitive Neuroscience University College London (previous version:Christian Ruff) m.bauer@fil.ion.ucl.ac.uk. Course overview. Autumn 2009: Using MATLAB for data analysis and visualisation Session 1: Basics of MATLAB / Programming
E N D
MATLAB: An introduction Markus Bauer, UCL Institute of Cognitive Neuroscience University College London (previous version:Christian Ruff) m.bauer@fil.ion.ucl.ac.uk
Course overview • Autumn 2009: Using MATLAB for data analysis and visualisation • Session 1: Basics of MATLAB / Programming • Session 2: Basics of MATLAB / Programming • Session 3: Handling and Importing of data & analysis • Session 4: Visualization in MATLAB • Session 5: Tips and tricks, questions and answers • Spring 2010: Using MATLAB to run experiments and collect data • Summer 2010: Advanced experimental and data analysis procedures All materials online at http://www.icn.ucl.ac.uk/courses/MATLAB-Tutorials/index.htm
What is MATLAB? • “MATrix LABoratory”, a high-level programming language / computing environment • Enables efficient programming of mathematical operations, in particular for matrix-operations • Similar to programming languages as ‘C’, but easier to use (variable definitions etc) • Advanced visualization tools --> Graphs and plotting data • Many specialised toolboxes available (e.g., statistics; image processing, etc.) + code for specific scientific purposes freely available on the internet (e.g., COGENT, SPM) • Transparent way of analysing data -> full access to data on all levels (no ‘black box’), easy to modify / build up on existing tools • Can make GUI based software environments • Disadvantages: • It is expensive (but see Octave) • It can be slow (can partially be compensated by using MEX functions, compiled)
How do I get started? • http://www.mathworks.com • http://www.gnu.org/software/octave/ (free software) • Excellent documentation and tutorial (both online and in pdf form) at http://www.mathworks.com/support/ or by typing help or doc in MATLAB • Other MATLAB tutorials on the web: • http://www.icn.ucl.ac.uk/webspace/users/ahamilton/matlab.htm • http://www.mrc-cbu.cam.ac.uk/Imaging/Common/matlab.shtml • http://www.indiana.edu/~statmath/math/matlab/ • A good book: “Mastering Matlab” by Hanselmann and Littlefield • Lots of functions at http://www.mathworks.com/matlabcentral/
Basics of MATLAB • - matlab windows - desktop - command window, history and workspace • Show the matlab command window: • Can use as a calculator, or to ‘interactively’ enter commands • Show history function and the tab • Where are functions - path definition and the startup file • Matlab functions and scripts: = programs • Matlab editor: a text editor • Essentials of programming: • Variables and arrays: numerical variables (integer and double), strings / string arrays • Cell arrays, structures • - built in functions (e.g. fprintf, open, save etc) • Operators: + - * / ^ logical operators: & | ~ others: () [] {} , ; : • Conditional statements : if ... elseif ... end • Loops: • For ((to)) end loop • While (conditional statement) end loop • Distinction: script and function
Demo: Functions • Functions: function [output1,output2,…] = myfun(input1, input2,…) • Functions: • Input needs to be defined in command, output not • Function workspace: a separate module of the workspace • contains inputs to functions, transformation variables, and outputs from function • These variables are not visible from the global workspace • Functions can call other functions and contain subfunctions • Commands without semicolon are visible in command window • Graphical output is visible
Demo: Functions in MATLAB • MATLAB – just a collection of functions: • Built-in functions cannot be edited but have an .m-file (for help) • Add-on functions are just an ordinary .m file that you can see/edit/add • How MATLAB finds a function: • Embedded in the function as subfunction • Built-in functions • Local directory • Path in descending order • Add functions to directory outside of the MATLAB toolbox (e.g., ‘work’ – otherwise MATLAB might overwrite them when re-installed • Dependency report