MATLAB Slides
MATLAB Slides
◼ Current Directory
❑ View folders and m-files
◼ Workspace
❑ View variables
❑ Double click on a variable
to see it in the Array Editor
◼ Command History
❑ view past commands
❑ save a whole session
using diary
int a; >>a=1;
a=1; >>b=2+4;
double b;
b=2+4;
C/C++ Matlab
b = false;
Variables
A = [1, 2, 3]
B = [1,2,3;4,5,6]
E=[1 2 3]’
Variables
Variables
C = ‘Hello World!';
Variables
A = zeros(3);
B = ones(5);
C = rand(100,2);
D = eye(20);
E = sprintf('%d\n',9);
Matrix Index
Matrix indices begin from 1 (not 0!!!)
Matrix indices must be positive integers
Column-Major Order
Matrix Index
>> A(2,2:3) >> A(2,1:end) >> A(2,:)
5 6 4 5 6 4 5 6
>> A(:)
ans =
http://www.mathworks.com/company/newsletters/articles/matrix-indexing-
in-matlab.html
Matrix Operations
+ addition
- subtraction
* multiplication
^ power
‘ complex conjugate transpose
Matrix Operations
Given A and B:
x= y= b= c= d=
1 2 3 3 4 -1 3 8 -3 0.33 0.5 -3 1 16 0.33
• Structures
○ A = struct('name','1.jpg','height',640,'width',480);
○ b.name = '1.jpg‘
http://www.mathworks.com/help/matlab/matlab_prog/cell-vs-struct-arrays.html
Operators
== Equal to
~= Not equal to
< Strictly smaller
> Strictly greater
<= Smaller than or equal to
>= Greater than equal to
& And operator
| Or operator
Arrays and Matrices
ysddiat@gmail.com
Arrays and Matrices (2)
x = linspace(-pi,pi,10); % creates 10 linearly-
spaced elements from –pi to pi.
logspace is similar.
A = [1 2 3; 4 5 6]; % creates 2x3 matrix
A(1,2) % the element in row 1, column 2.
A(:,2) % the second column.
A(2,:) % the second row.
Arrays and Matrices (3)
A+B, A-B, 2*A, A*B % matrix addition, matrix
subtraction, scalar multiplication, matrix
multiplication
A.*B % element-by-element mult.
A’ % transpose of A (complex-
conjugate transpose)
det(A) % determinant of A
Creating special matrices
diag(v) % change a vector v to a
diagonal matrix.
diag(A) % get diagonal of A.
eye(n) % identity matrix of size n.
zeros(m,n)% m-by-n zero matrix.
ones(m,n) % m*n matrix with all ones.
Logical Conditions
==, <, >, <=, >=, ~= (not equal), ~ (not)
& (element-wise logical and), | (or)
find(‘condition’) – Return indices of A’s elements
that satisfies the condition.
Example: A = [7 6 5; 4 3 2];
find (‘A == 3’); --> returns 5.
More matrix/vector operations
length(v) % determine length of vector.
size(A) % determine size of matrix.
rank(A) % determine rank of matrix.
norm(A), norm(A,1), norm(A,inf)
% determine 2-norm, 1-
norm,
and infinity-norm of A.
• norm(v) % compute vector 2-norm.
Outline
1. Introduction
1. Overview
2. Variables
3. Loops & Conditions
4. Misc.
2. Image Processing with Matlab
3. References
For loops
x = 0;
for i=1:2:5 % start at 1, increment by 2
x = x+i; % end with 5.
end
http://www.mathworks.com/help/matlab/control-flow.html
Slide credit: İ.Yücel Özbek
Vectorization
Optimize your code for Matrix operations
Examples tic; i = 0;
for t = 0:.001:1000
i = i + 1;
In other languages: y(i) = sin(t);
end; toc;
Elapsed time is 0.509381 seconds.
tic; t = 0:.001:1000;
In MATLAB: y = sin(t); toc;
http://www.mathworks.com/help/matlab/matlab_prog/vectorization.html
Vectorization
Because Matlab is an interpreted language, i.e., it
is not compiled before execution, loops run slowly.
Vectorized code runs faster in Matlab.
Here m = 2 and n = 3.
Graphics (3)
plot3(x,y,z) % plot 2D function.
mesh(x_ax,y_ax,z_mat) – surface plot.
contour(z_mat) – contour plot of z.
axis([xmin xmax ymin ymax]) – change axes
title(‘My title’); - add title to figure;
xlabel, ylabel – label axes.
legend – add key to figure.
Examples
of Matlab
Plots
Examples
of Matlab
Plots
Practice Questions
Syntax:
function [y , y ,y . . . . , y ] = functionName(arguments)
1 2 3 n
.....
end
where, y . . . . y are output variables.
1 n
Functions Cont.
Define a function in a file named calculateAverage.m that accepts an input vector,
calculates the average of the values, and returns a single result.
z = 1:99;
ave = calculateAverage(z)
Result:
ave = 50
Scripts and Functions
Two kinds of M-files:
% Backward summation
backwardsum = 0;
for i=10:-1:1
backwardsum = backwardsum+1/(i^2);
end;
Interactive Example (2)
Write a Matlab function to multiply two
n-by-n matrices A and B. (Do not use built-in
functions.)
Solution
n = 10;
A = rand(n,n);
B = rand(n,n);
C = matrix_multiply(A,B,n);
M-File
Click to create
a new M-File
function out1=functionname(in1)
function out1=functionname(in1,in2,in3)
function [out1,out2]=functionname(in1,in2)
Functions
Debugging
Breakpoints
Plotting
Plotting functions
plot, plot3d, bar, area, hist, contour, mesh
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
Help & Doc
help functionName
doc functionName
Outline
1. Introduction
1. Overview
2. Variables
3. Matrix
4. Misc.
2. Image Processing with Matlab
3. References
Image Data Structure
• Image as matrices
– Gray image: m×n • Format:
– [0, 255] uint8
– RGB image: m×n×3
– [0, 1] double
I(1,1,3)
I(1,1,1) I(1,n,3)
I(m,n,3)
n I(m,n,1)
Image I/O/Display
% Read image (support bmp, jpg, png, ppm, etc)
I = imread('lena.jpg');
% Save image
imwrite(I, 'lena_out.jpg');
% Display image
imshow(I);
% Alternatives to imshow
imagesc(I);
imtool(I);
image(I);
Image Conversions
% Type conversion
I1 = im2double(I);
I2 = im2uint8(I);
% Affine transformation
A = [1 0 0; .5 1 0; 0 0 1];
tform = maketform('affine', A);
Itran = imtransform(I, tform);
Image Filtering / Convolution
• A filter (or called mask, kernel, neighborhood) is N×N matrix.
− Cheat Sheets
• http://web.mit.edu/18.06/www/Spring09/matlab-cheatsheet.pdf
• http://www.geog.ucsb.edu/~pingel/210b/general/matlab_refcard.pdf
Thank you!