Difference between revisions of "MatlabIntro"

From CCRMA Wiki
Jump to: navigation, search
(Basics)
Line 21: Line 21:
  
  
=== Vector and Matrices ===
+
* Comments are specified using % at the beginning of the comment. Only line comments are allowed (sorry, but no block-comments, although there's a shortcut in the editor to comment out all the selected lines)
 +
 
 +
<pre>
 +
>> % This is a comment
 +
>> x = 0; % this is another comment
 +
</pre>
 +
 
 +
 
 +
* Functions may return more than one value, and they can be of any type. For example:
 +
 
 +
<pre>
 +
[r,c] = size([ones(2)])
 +
 
 +
r =
 +
 
 +
    2
 +
 
 +
 
 +
c =
 +
 
 +
    2
 +
</pre>
 +
 
 +
 
 +
== Vector and Matrices ==
  
 
* Use square brackets to define a vector/matrix
 
* Use square brackets to define a vector/matrix
  
<code>
+
<pre>
 
x = [1 2 3 4 5]
 
x = [1 2 3 4 5]
</code>
+
</pre>
  
  
* Inside a vector/matrix definition, commas or spaces separate elements row-wise
+
* Inside a vector/matrix definition, commas or spaces separate elements row-wise. For example:
  
 
<pre>
 
<pre>
Line 42: Line 66:
 
</pre>
 
</pre>
  
and they both generate a row vector. Semi-colons, instead, separate elements column-wise:
+
and they both generate a row vector. Semi-colons, instead, separate elements column-wise. For example, the following line will create a column vector:
  
 
<pre>
 
<pre>
 
>> x = [1;2;3;4;5]
 
>> x = [1;2;3;4;5]
 +
</pre>
 +
 +
 +
* You can combine both to create a bigger matrix:
 +
 +
<pre>
 +
>> x = [1 2 3 4;2 3 4 5;3 4 5 6]
 +
 +
x =
 +
 +
    1    2    3    4
 +
    2    3    4    5
 +
    3    4    5    6
 +
 +
</pre>
 +
 +
* Some useful vector/matrix operators are:
 +
 +
In the following code snippets I'll assume that x was defined as:
 +
<pre>
 +
>> x = [1 2;3 4]
 +
 +
x =
 +
 +
    1    2
 +
    3    4
 +
</pre>
 +
 +
** Use ' as a suffix to transpose the vector/matrix:
 +
<pre>
 +
>> x'
 +
 +
ans =
 +
 +
    1    3
 +
    2    4
 +
>>
 +
</pre>
 +
 +
** The function size(x) will return the size of x: first number is the number of row and the second is the number of columns:
 +
<pre>
 +
>> size(x)
 +
 +
ans =
 +
 +
    2    2
 +
</pre>
 +
 +
** You can access individual elements of a matrix using parenthesis (first argument specifies the row and the second specifies the column):
 +
<pre>
 +
>> x(2,1)
 +
 +
ans =
 +
 +
    3
 
</pre>
 
</pre>
  

Revision as of 12:07, 21 September 2010


Basics

  • Use semi-colon at the end of the line to prevent the output of the operation to be printed to the screen
>> x = 1

x =

     1

vs.

>> x = 1;
>>


  • Comments are specified using % at the beginning of the comment. Only line comments are allowed (sorry, but no block-comments, although there's a shortcut in the editor to comment out all the selected lines)
>> % This is a comment
>> x = 0; % this is another comment


  • Functions may return more than one value, and they can be of any type. For example:
[r,c] = size([ones(2)])

r =

     2


c =

     2


Vector and Matrices

  • Use square brackets to define a vector/matrix
x = [1 2 3 4 5]


  • Inside a vector/matrix definition, commas or spaces separate elements row-wise. For example:
>> x = [1 2 3 4 5]

is the same as:

>> x = [1,2,3,4,5]

and they both generate a row vector. Semi-colons, instead, separate elements column-wise. For example, the following line will create a column vector:

>> x = [1;2;3;4;5]


  • You can combine both to create a bigger matrix:
>> x = [1 2 3 4;2 3 4 5;3 4 5 6]

x =

     1     2     3     4
     2     3     4     5
     3     4     5     6

  • Some useful vector/matrix operators are:

In the following code snippets I'll assume that x was defined as:

>> x = [1 2;3 4]

x =

     1     2
     3     4
    • Use ' as a suffix to transpose the vector/matrix:
>> x'

ans =

     1     3
     2     4
>> 
    • The function size(x) will return the size of x: first number is the number of row and the second is the number of columns:
>> size(x)

ans =

     2     2
    • You can access individual elements of a matrix using parenthesis (first argument specifies the row and the second specifies the column):
>> x(2,1)

ans =

     3

General tips

  1. Try to vectorize every operation if you can