# Difference between revisions of "MatlabIntro"

From CCRMA Wiki

Line 127: | Line 127: | ||

== Plotting == | == Plotting == | ||

+ | |||

+ | The basic command is plot(x), to plot the contents of x (if x is a matrix, then each column is plotted as a different line): | ||

+ | |||

+ | <pre> | ||

+ | >> fs = 441000; | ||

+ | >> t = 0:1/fs:0.01; | ||

+ | >> plot(sin(2*pi*220*t)); | ||

+ | </pre> | ||

+ | |||

+ | You can also use plot(x,y): | ||

+ | |||

+ | <pre> | ||

+ | >> plot(t, sin(2*pi*220*t)); | ||

+ | </pre> | ||

+ | |||

+ | By default plot will erase the previous plot before drawing the new one. Use hold to prevent this from happening. Also, you can use a third argument to specify the line color (and other plotting options): | ||

+ | |||

+ | <pre> | ||

+ | >> hold on; | ||

+ | >> plot(t, sin(2*pi*110*t), 'r'); | ||

+ | >> plot(t, sin(2*pi*330*t), 'g'); | ||

+ | >> plot(t, sin(2*pi*440*t), 'k'); | ||

+ | </pre> | ||

+ | |||

== Sound == | == Sound == | ||

+ | |||

## Revision as of 11:30, 22 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

## Plotting

The basic command is plot(x), to plot the contents of x (if x is a matrix, then each column is plotted as a different line):

>> fs = 441000; >> t = 0:1/fs:0.01; >> plot(sin(2*pi*220*t));

You can also use plot(x,y):

>> plot(t, sin(2*pi*220*t));

By default plot will erase the previous plot before drawing the new one. Use hold to prevent this from happening. Also, you can use a third argument to specify the line color (and other plotting options):

>> hold on; >> plot(t, sin(2*pi*110*t), 'r'); >> plot(t, sin(2*pi*330*t), 'g'); >> plot(t, sin(2*pi*440*t), 'k');

## Sound

## General tips

- Try to vectorize every operation if you can