Chapter - 1_MATLAB Fundamentals
Chapter - 1_MATLAB Fundamentals
MATLAB Fundamentals
By: Solomon Derbie (Assist. Prof.)
March, 2025
What is MATrix LABoratory (MATLAB)?
▪ It is developed by The Mathworks, Inc. (http://www.mathworks.com ).
Easy to use.
Compact notations.
1
Getting Started With MATLAB
▪ Latest version is MATLAB 2024b
>> version % this will tell you the running MATLAB version
ans =
9.5.0.944444 (R2018b)
2
Getting Started With MATLAB … Cont’d
▪ >> help % lists available packages/toolboxes on system.
3
Rules on Variables and File Names
▪ Variable, function, file names
▪ up to 63 characters
▪ A function performs a pre-defined task based on input to yield certain outcome.
4
Rules on Variables and File Names … Cont’d
▪ File name
▪ MATLAB command files should be named with a suffix
of ".m", e.g., myfile.m.
▪ >> myfile
5
Reserved Characters % = ; ,
▪ >>
6
Reserved Characters % = ; , … Cont’d
▪ >> a = 3 % define a to have the value 3
▪ a=
3
▪ >> a = 3; % “;” suppresses printing
▪ >>
▪ >> b = 4; c = 5; % “;” enables multiple commands on same line
▪ >>
▪ >> d = 6, e = 7; % “,” delimits commands but enables printing
▪ d=
6
7
Reserved Characters : [] ( )
▪ >> x = 1:2:9 % define vector x with : operator (begin:interval:end)
▪ x=
1 3 5 7 9
▪ >> y = 3:5 % interval is defaulted to 1; same as y=[3:5]
▪ y=
3 4 5
▪ >> X = [1, 2, 3; 4, 5, 6] % 2D array. The ; is vertical concatenation.
% [ ] for arrays. Prevents ambiguity
% ; concatenates vertically (new row)
% , concatenates horizontally (new columns)
▪ X=
1 2 3
4 5 6 8
Reserved Characters … and '
▪ >> x = [1 2 3 … % elipses … means to be continued on the next line
4 5 6]
▪x=
1 2 3 4 5 6
▪ >> s = 'this is a character string'; % blanks preserved within quotes
▪ >> x = [1 2 3]' % ' performs transpose (e.g., turns row into column)
▪x=
1
2
3
9
Reserved Characters … and '
▪ ans =
2 3
▪ ans =
10
Array Operations
>> a = 1:3; % a is a row vector
>> b = 4:6; % b is a row vector
>> c = a + b % c has same shape as a & b
c=
5 7 9
>> A = [a;b] % combines rows to generate 2x3 matrix A;
A=a;b ?
A=
1 2 3
4 5 6
11
Array Operations … Cont’d
>> B = A' % B is transpose of A
B=
1 4
2 5
3 6
Other ways to create B ? (hint: with a and b )
12
Matrix Operations
>> C = A*B % * is overloaded as matrix multiply operator
C=
14 32
32 77
>> D = A.*A % a .* turns matrix multiply to elemental multiply
D=
1 4 9
16 25 36
13
Matrix Operations … Cont’d
>> E = A./A % elemental divide
E=
1 1 1
1 1 1
>> who % list existing variables in workspace
Your variables are:
A B C D E a b d
14
For Loops
for j=1:5 % use for-loops to execute iterations / repetitions
for i=1:3
a(i, j) = i + j ;
end
end
▪ Utilities to initialize or define arrays: ones, rand, eye, . . .
17
Script m-file … Cont’d
Select File/Save to save it as mytrig.m.
A script shares the same scope with that which it operates. For
example, if it runs from the matlab
18
Function m-files
▪ It is declared with the key word function, with optional input parameters on
the right and optional output on the left of =.
▪ function avg=average(x)
▪ % function avg=average(x)
▪ >> a = average(1:3) % a = (1 + 2 + 3) / 3
▪ a=
2
▪ >> help average % prints contiguous lines with % in average
20
Script or Function m-file ?
Scripts
▪ Pros:
▪ Cons:
▪ Slow; script commands loaded and interpreted each time it is used.
21
Script or Function m-file ? … Cont’d
▪ Functions
▪ Pros:
▪ What comes in and goes out are tightly controlled which helps when debugging
becomes necessary.
▪ I/O are highly regulated, if the function requires many pre-defined variables, it
is cumbersome to pass in and out of the function – a script m-file is more
convenient.
23
Some Frequently Used Functions
>> magic(n) % creates a special n x n matrix; handy for testing
▪ Bar graph
▪ Surface plot
26
Line Plot
>> t = 0:pi/100:2*pi;
>> y = sin(t);
>> plot(t,y)
27
Line Plot … Cont’d
>> xlabel(‘t’);
>> ylabel(‘sin(t)’);
28
Line Plot … Cont’d
>> y2 = sin(t-0.25);
>> y3 = sin(t+0.25);
>> plot(t,y,t,y2,t,y3)
>> legend('sin(t)','sin(t-0.25)','sin(t+0.25',1)
29
2D Bar Graph
>> x = magic(3); % generate data
for bar graph
>> bar(x) % create bar chart
>> grid % add grid for
clarity
30
Surface Plot
>> Z = peaks; % generate data for plot; peaks returns function values
>> surf(Z) % surface plot of Z
Try these commands also:
>> shading flat
>> shading interp
>> shading faceted
>> grid off
>> axis off
>> colorbar
>> colormap(‘winter’)
>> colormap(‘jet’)
31
Thank You!