08/04/2016
Today's knowledge pill.
MATLAB ?
MATLAB (mat rix lab oratory) is a multi-paradigm
numerical computing environment and fourth-generation programming language . A proprietary programming language developed by MathWorks , MATLAB allows matrix manipulations, plotting of
functions and data, implementation of algorithms , creation of user interfaces , and interfacing with programs written in other languages, including C , C++ ,
Java, Fortran and Python .
Although MATLAB is intended primarily for numerical computing, an optional toolbox uses the MuPAD
symbolic engine , allowing access to symbolic computing abilities. An additional package, Simulink, adds graphical multi-domain simulation and model-based design for dynamic and embedded systems .
Syntax
The MATLAB application is built around the MATLAB scripting language. Common usage of the MATLAB application involves using the Command Window as an interactive mathematical shell or executing text files containing MATLAB code.
Variables
Variables are defined using the assignment operator,
= . MATLAB is a weakly typed programming language because types are implicitly converted
>> x = 17
x =
17
>> x = 'hat'
x =
hat
>> y = x + 0
y =
104 97 116
>> x = [ 3*4 , pi/2 ]
x =
12.0000 1.5708
>> y = 3*sin (x)
y =
-1.6097 3.0000
Vectors and matrices
A simple array is defined using the colon syntax:
init : increment : terminator . For instance:
>> array = 1: 2:9
array =
1 3 5 7 9
defines a variable named array (or assigns a new value to an existing variable with the name array ) which is an array consisting of the values 1, 3, 5, 7, and 9. That is, the array starts at 1 (the init value), increments with each step from the previous value by 2 (the increment value), and stops once it reaches (or to avoid exceeding) 9 (the terminator value).
>> array = 1: 3:9
array =
1 4 7
the increment value can actually be left out of this syntax (along with one of the colons), to use a default value of 1.
>> ari = 1 :5
ari =
1 2 3 4 5
assigns to the variable named ari an array with the values 1, 2, 3, 4, and 5, since the default value of 1 is used as the incrementer.
Indexing is one-based, [10] which is the usual convention for matrices in mathematics, although not for some programming languages such as C, C++, and Java.
Matrices can be defined by separating the elements of a row with blank space or comma and using a semicolon to terminate each row. The list of elements should be surrounded by square brackets: []. Parentheses: () are used to access elements and subarrays (they are also used to denote a function argument list).
>> A = [ 16 3 2 13 ; 5 10 11 8; 9 6 7
12; 4 15 14 1 ]
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
>> A( 2, 3)
ans =
11
Sets of indices can be specified by expressions such as "2:4", which evaluates to [2, 3, 4]. For example, a submatrix taken from rows 2 through 4 and columns 3 through 4 can be written as:
>> A( 2: 4,3 :4)
ans =
11 8
7 12
14 1
A square identity matrix of size n can be generated using the function eye , and matrices of any size with zeros or ones can be generated with the functions
zeros and ones , respectively.
>> eye( 3,3 )
ans =
1 0 0
0 1 0
0 0 1
>> zeros (2 ,3)
ans =
0 0 0
0 0 0
>> ones (2, 3)
ans =
1 1 1
1 1 1
Most MATLAB functions can accept matrices and will apply themselves to each element. For example, mod(2*J,n) will multiply every element in "J" by 2, and then reduce each element modulo "n". MATLAB does include standard "for" and "while" loops, but (as in other similar applications such as R ), using the
vectorized notation often produces code that is faster to execute. This code, excerpted from the function
magic.m , creates a magic square M for odd values of
n (MATLAB function meshgrid is used here to generate square matrices I and J containing 1:n).