User Tools

Site Tools


matlab_-_introduction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
matlab_-_introduction [2012/10/06 02:09] – created jochenmatlab_-_introduction [2012/10/06 16:24] – added language about functions and file exchange jochen
Line 8: Line 8:
 ===== Language features ===== ===== Language features =====
   * the language is easy to use for prototyping, given its forgiving and user-friendly nature   * the language is easy to use for prototyping, given its forgiving and user-friendly nature
-    * variables do require a declaration and can be defined and have their datatype and dimension changed at any point within a program+    * variables don'require a declaration but can be defined and have their datatype and dimension changed at any point within a program
     * numeric variables are, by default, all created with a standard datatype of **''double''**, requiring little (if any) knowledge of numeric datatypes     * numeric variables are, by default, all created with a standard datatype of **''double''**, requiring little (if any) knowledge of numeric datatypes
-    * identifiers can be overloaded (e.g. built-in functions can be replaced by user defined ones)+    * storage of and access to variable values is organized in workspaces 
 +    * identifiers can be overloaded (e.g. built-in functions can be replaced by user defined ones), globally or separately in each workspace
   * array indexing is available in multiple ways to simplify element selection (see [[Matlab - datatypes|datatypes and indexing page]])   * array indexing is available in multiple ways to simplify element selection (see [[Matlab - datatypes|datatypes and indexing page]])
   * array-based operations are highly optimized for speed and mostly support multiple CPU cores   * array-based operations are highly optimized for speed and mostly support multiple CPU cores
-  * memory management is built-in (garbage collection on variables no longer in use)+  * memory management is built-in (workspace-related garbage collection on variables no longer in use)
   * Matlab comes with a vast repository of built-in and built-upon functions for mathematical computations, data in- and output, as well as visualization   * Matlab comes with a vast repository of built-in and built-upon functions for mathematical computations, data in- and output, as well as visualization
   * functions can return more than one output value/variable (without having to resort to compound/struct variables)   * functions can return more than one output value/variable (without having to resort to compound/struct variables)
Line 20: Line 21:
   * with a built-in interface to compiled code (MEX), Matlab allows to translate computationally intensive operations (recursion, etc.) into compiled code for speedup   * with a built-in interface to compiled code (MEX), Matlab allows to translate computationally intensive operations (recursion, etc.) into compiled code for speedup
   * built-in file format to store the content of variables in a binary format (incl. compression and platform independence)   * built-in file format to store the content of variables in a binary format (incl. compression and platform independence)
 +
 +==== Built-in functionality ====
 +On top of these features, Matlab comes with many, many built-in functions from a variety of fields, among them are
 +  * mathematical functions (sum, mean, median, mode, standard deviation/variance, discrete derivatives, convolution, minimum, maximum, etc.)
 +  * list and set related functions (sort, unique, intersect, setdiff, union, etc.)
 +  * rudimentary statistical functions (histogram, correlation coefficient, detrending, etc.)
 +  * matrix operations (inverse, pseudo-inverse, SVD, decomposition, etc.)
 +  * graphical output functions (line, polygon, shape, surface, and scatter plot, annotations, etc.)
 +  * GUI functions (figures, controls, callback handling, etc.)
 +
 +These features make it usually relatively efficient to create code with complex functionality with just a few lines of code.
 +
 +==== User-provided toolboxes ====
 +Mathworks additionally provides a user-defined toolbox area on their webserver, [[http://www.mathworks.com/matlabcentral/fileexchange/|File Exchange]], where users can upload their functions (or sets of functions, called toolboxes) which often allows users to solve even complex problems with a minimal effort, given that someone has already solved it before.
  
 ===== GUI elements ===== ===== GUI elements =====
matlab_-_introduction.txt · Last modified: 2012/11/12 16:52 by jochen