SlideShare a Scribd company logo
INTRODUCTION TO
MATLAB
Kadin Tseng
Boston University
Scientific Computing and Visualization
 It is developed by The Mathworks, Inc. (http://www.mathworks.com)
 It is an interactive, integrated, environment
• for numerical/symbolic, scientific computations and other apps.
• shorter program development and debugging time than traditional
programming languages such as FORTRAN and C.
• slow (compared with FORTRAN or C) because it is interpreted.
• automatic memory management; no need to declare arrays.
• intuitive, easy to use.
• compact notations.
What is MATrix LABoratory ?
Introduction to MATLAB
2
 Latest version is MATLAB 2012b
 For Windows: double click MATLAB icon
 For Linux Cluster: katana% matlab
 Either case spawns a MATLAB window with >> prompt.
>> % from % to end of line used for code documentation
>> version % this will tell you the running MATLAB version
ans =
7.12.0.635 (R2011a)
>> help % lists available packages/toolboxes on system.
>> help elfun % lists functions in elementary functions package
>> help sin % instructions on the sine function
>> lookfor sine % if you don’t know the function name …
>> doc sin % for full details o ffunction
>> quit % to quit MATLAB
Getting Started With MATLAB
Introduction to MATLAB
3
 Variable, function, file names
• is case sensitive, e.g., NAME and Name are 2 distinct names.
• variable begins with a letter, e.g., A2z or a2z
• can be a mix of letters, digits, and underscores (e.g., vector_A)
• reserved characters: % = + – ~ ; : ! ' [ ] ( ) , @ # $ & ^
• up to 63 characters
• A function performs a pre-defined task based on input to yield
certain outcome.
 File name
• MATLAB command files should be named with a suffix of ".m", e.g.,
myfile.m. An m-file typically contains a sequence of MATLAB
commands that will be executed in order
• A file may contain a collection of commands, functions
Note: To run, enter m-file, without .m, e.g.,
>> myfile
Rules on Variables and File Names
Introduction to MATLAB
4
• Some characters are reserved by MATLAB for various purposes. Some
as arithmetic or matrix operators: =, +, - , *, / ,  and others are used
to perform a multitude of operations. Reserved characters cannot be
used in variable or function names.
• >> % anything after % until the end of line is treated as comments
>>
• >> 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
Reserved Characters % = ; ,
Introduction to MATLAB
5
• >> 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
• >> X(2,3) % ( ) for subscripting; why ans ?
ans =
6
Reserved Characters : [ ] ( )
Introduction to MATLAB
6
>> 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
>> X = [1 2 3; 4 5 6]; size(X) % figure out the size (dimensions) of X
ans =
2 3
>> X = [1 2 3; 4 5 6]; numel(X) % total number of entries in X
ans =
6
Reserved Characters … and '
Introduction to MATLAB
7
• >> !dir % “!” lets you run a command in MS Windows
Volume in drive C has no label.
Volume Serial Number is 6860-EA46
Directory of C:Program FilesMATLAB704work
01/31/2007 10:56 AM <DIR> .
01/31/2007 10:56 AM <DIR> ..
06/13/2006 12:09 PM 12 foo.exe
06/13/2006 08:57 AM 77 mkcopy.m
• >> !ls -l % “!” lets you run a similar command in Unix/Linux
total 0
-rw-r--r-- 1 kadin scv 0 Jan 19 15:53 file1.m
-rw-r--r-- 1 kadin scv 0 Jan 19 15:53 file2.m
-rw-r--r-- 1 kadin scv 0 Jan 19 15:53 file3.m
>> system(‘ls -l’) % more general form; also unix(‘ls -l’)
Reserved Character ! (or system)
Introduction to MATLAB
8
>> 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
>> B = A' % B is transpose of A
B =
1 4
2 5
3 6
Other ways to create B ? (hint: with a and b )
Array operations
Introduction to MATLAB
9
>> 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
>> 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
Matrix Operations
Introduction to MATLAB
10
>> whos % detail listing of workspace variables
Name Size Bytes Class Attributes
A 2x3 48 double
B 3x2 48 double
C 2x2 32 double
D 2x3 48 double
E 2x3 48 double
a 1x3 24 double
b 1x3 24 double
c 1x3 24 double
>> A = single(A); % recast A to single data type to save memory
>> whos
Name Size Bytes Class
A 2x3 24 single
>> clear % delete all workspace variables
Data Precisions
Introduction to MATLAB
11
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, . . .
Trigonometric and hyperbolic functions : sin, cos, sqrt, exp, . . .
These utilities can be used on scalar or vector inputs
>> a = sqrt(5); v = [1 2 3]; A = sqrt(v);
For Loops
Introduction to MATLAB
12
Scalar operation . . .
a = zeros(3); b = zeros(3);
for j=1:3
for i=1:3
a(i,j) = rand; % use rand to generate a random number
if a(i,j) > 0.5
b(i,j) = 1;
end
end
end
Equivalent vector operations . . .
A = rand(3); % A is a 3x3 random number double array
B = zeros(3); % Initialize B as a 3x3 array of zeroes
B(A > 0.5) = 1; % set to 1 all elements of B for which A > 0.5
if Conditional
Introduction to MATLAB
13
A cell array is a special array of arrays. Each element of the cell
array may point to a scalar, an array, or another cell array.
>> C = cell(2, 3); % create 2x3 empty cell array
>> M = magic(2);
>> a = 1:3; b = [4;5;6]; s = 'This is a string.';
>> C{1,1} = M; C{1,2} = a; C{2,1} = b; C{2,2} = s; C{1,3} = {1};
C =
[2x2 double] [1x3 double] {1x1 cell}
[2x1 double] ‘This is a string.‘ []
>> C{1,1} % prints contents of a specific cell element
ans =
1 3
4 2
>> C(1,:) % prints first row of cell array C; not its content
Related utilities: iscell, cell2mat
Cell Arrays
Introduction to MATLAB
14
Ideal layout for grouping arrays that are related.
>> name(1).last = ‘Smith’; name(2).last = ‘Hess’;
>> name(1).first = ‘Mary’; name(2).first = ‘Robert’;
>> name(1).sex = ‘female’; name(2).sex = ‘male’;
>> name(1).age = 45; name(2).age = 50;
>> name(2)
ans =
last: 'Hess'
first: 'Robert'
sex: 'male'
age: 50
Alternative style:
>> name = struct(‘last’,{Smith’,’Hess’}, ‘first’,{Mary’,’Robert’},…
(‘sex’,{female’,’male’}, ‘age’,{45,50});
Related utilities: isstruct, fieldnames, getfield, isfield
Structures
Introduction to MATLAB
15
There are many types of files in MATLAB.
Only script-, function-, and mat-files are covered here:
1.script m-files (.m) -- group of commands; reside in base workspace
2.function m-files (.m) -- memory access controlled; parameters passed
as input, output arguments; reside in own workspace
3.mat files (.mat) -- binary (or text) files handled with save and load
4.mex files (.mex) -- runs C/FORTRAN codes from m-file
5.eng files (.eng) -- runs m-file from C/FORTRAN code
6.C codes (.c) – C codes generated by MATLAB compiler
7.P codes (.p) – converted m-files to hide source for security
File Types
Introduction to MATLAB
16
If you have a group of commands that are expected to be executed
repeatedly, it is convenient to save them in a file . . .
>> edit mytrig.m % enter commands in editor window
a=sin(x); % compute sine x (radians)
b=cos(x); % compute cosine x (radians)
disp( [‘a = ‘ num2str(a) ] ) % prints a; here, [ . . . ] constitutes a string array
disp( [‘b = ‘ num2str(b) ] ) % prints b
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
Define x, then use it in mytrig.m:
>> x=30*pi/180; % converts 30 degrees to radians
>> mytrig % x is accessible to mytrig.m; share same workspace
a = 0.5000
b = 0.8660
Script m-file
Introduction to MATLAB
17
• It is declared with the key word function, with optional input
parameters on the right and optional output on the left of =. All
other parameters within function reside in function’s own workspace.
Use MATLAB editor to create file: >> edit average.m
function avg=average(x)
% function avg=average(x)
% Computes the average of x
% x (input) matrix for which an average is sought
% avg (output) the average of x
avg = sum(x)/numel(x); % the average
end
Save the above with File/Save
• Recommendation: saves file with name same as function name
• It may be called from a script, another function, or on command line:
• >> a = average(1:3) % a = (1 + 2 + 3) / 3
a =
2
>> help average % prints contiguous lines with % in average
Function m-files
Introduction to MATLAB
18
Scripts
• Pros:
- convenient; script’s variables are in same workspace as caller’s
• Cons:
- slow; script comands loaded and interpreted each time it is used
- risks of variable name conflict inside & outside of script
Functions
• Pros:
• Scope of function’s variables is confined to within function. No
worry for name conflict with those outside of function.
• What comes in and goes out are tightly controlled which helps when
debugging becomes necessary.
• Compiled the first time it is used; runs faster subsequent times.
• Easily be deployed in another project.
• Auto cleaning of temporary variables.
• Cons:
• 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.
Script or Function m-file ?
Introduction to MATLAB
19
>> magic(n) % creates a special n x n matrix; handy for testing
>> zeros(n,m) % creates n x m matrix of zeroes (0)
>> ones(n,m) % creates n x m matrix of ones (1)
>> rand(n,m) % creates n x m matrix of random numbers
>> repmat(a,n,m) % replicates a by n rows and m columns
>> diag(M) % extracts the diagonals of a matrix M
>> help elmat % list all elementary matrix operations ( or elfun)
>> abs(x); % absolute value of x
>> exp(x); % e to the x-th power
>> fix(x); % rounds x to integer towards 0
>> log10(x); % common logarithm of x to the base 10
>> rem(x,y); % remainder of x/y
>> mod(x, y); % modulus after division – unsigned rem
>> sqrt(x); % square root of x
>> sin(x); % sine of x; x in radians
>> acoth(x) % inversion hyperbolic cotangent of x
Some Frequently Used Functions
Introduction to MATLAB
20
 Line plot
 Bar graph
 Surface plot
 Contour plot
 MATLAB tutorial on 2D, 3D visualization tools as well as other graphics
packages available in our tutorial series.
MATLAB Graphics
Introduction to MATLAB
21
>> t = 0:pi/100:2*pi;
>> y = sin(t);
>> plot(t,y)
Line Plot
Introduction to MATLAB
22
>> xlabel(‘t’);
>> ylabel(‘sin(t)’);
>> title(‘The plot of t vs sin(t)’);
Line Plot
Introduction to MATLAB
23
>> y2 = sin(t-0.25);
>> y3 = sin(t+0.25);
>> plot(t,y,t,y2,t,y3) % make 2D line plot of 3 curves
>> legend('sin(t)','sin(t-0.25)','sin(t+0.25',1)
Line Plot
Introduction to MATLAB
24
Generally, MATLAB’s default graphical settings are adequate which make
plotting fairly effortless. For more customized effects, use the get and set
commands to change the behavior of specific rendering properties.
>> hp1 = plot(1:5) % returns the handle of this line plot
>> get(hp1) % to view line plot’s properties and their values
>> set(hp1, ‘lineWidth’) % show possible values for lineWidth
>> set(hp1, ‘lineWidth’, 2) % change line width of plot to 2
>> gcf % returns current figure handle
>> gca % returns current axes handle
>> get(gcf) % gets current figure’s property settings
>> set(gcf, ‘Name’, ‘My First Plot’) % Figure 1 => Figure 1: My First Plot
>> get(gca) % gets the current axes’ property settings
>> figure(1) % create/switch to Figure 1 or pop Figure 1 to the front
>> clf % clears current figure
>> close % close current figure; “close 3” closes Figure 3
>> close all % close all figures
Customizing Graphical Effects
Introduction to MATLAB
25
>> x = magic(3); % generate data for bar graph
>> bar(x) % create bar chart
>> grid % add grid
• To add a legend, either use the legend command or via insert in the Menu
Bar on the figure. Many other actions are available in Tools.
• It is convenient to use the Menu Bar to change a figure’s properties
interactively. However, the set command is handy for non-interactive
changes, as in an m-file.
• Similarly, save a graph via the Menu Bar’s File / Save as or
>> print –djpeg 'mybar' % file mybar.jpg saved in current dir
Save A Plot With print
Introduction to MATLAB
26
>> x = magic(3); % generate data for bar graph
>> bar(x) % create bar chart
>> grid % add grid for clarity
2D Bar Graph
Introduction to MATLAB
27
• Many MATLAB utilities are available in both command and function forms.
• For this example, both forms produce the same effect:
• >> print –djpeg 'mybar' % print as a command
• >> print('-djpeg', 'mybar') % print as a function
• For this example, the command form yields an unintentional outcome:
• >> myfile = 'mybar'; % myfile is defined as a string
• >> print –djpeg myfile % as a command, myfile is treated as text
• >> print('-djpeg', myfile) % as a function, myfile is treated as a variable
• Other frequently used utilities that are available in both forms are:
• save, load
Use MATLAB Command or Function ?
Introduction to MATLAB
28
>> 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’)
Surface Plot
Introduction to MATLAB
29
>> Z = peaks;
>> contour(Z, 20) % contour plot of Z with 20 contours
>> contourf(Z, 20); % with color fill
>> colormap('hot') % map option
>> colorbar % make color bar
Contour Plots
Introduction to MATLAB
30
• Integration of cosine from 0 to π/2.
• Use mid-point rule for simplicity.
Integration Example
Introduction to MATLAB
31
h
h
i
a
dx
x
dx
x
m
i
m
i
ih
a
h
i
a
b
a
)
)
(
cos(
)
cos(
)
cos( 2
1
1
1
)
1
(



 

 




mid-point of increment
cos(x)
h
a = 0; b = pi/2; % range
m = 8; % # of increments
h = (b-a)/m; % increment
% integration with for-loop
tic
m = 100;
a = 0; % lower limit of integration
b = pi/2; % upper limit of integration
h = (b – a)/m; % increment length
integral = 0; % initialize integral
for i=1:m
x = a+(i-0.5)*h; % mid-point of increment i
integral = integral + cos(x)*h;
end
toc
Integration Example — using for-loop
Introduction to MATLAB
32
X(1) = a + h/2 X(m) = b - h/2
a
h
b
% integration with vector form
tic
m = 100;
a = 0; % lower limit of integration
b = pi/2; % upper limit of integration
h = (b – a)/m; % increment length
x = a+h/2:h:b-h/2; % mid-point of m increments
integral = sum(cos(x))*h;
toc
Integration Example — using vector form
Introduction to MATLAB
33
X(1) = a + h/2 X(m) = b - h/2
a
h
b
1. Use the editor to write a program to generate the figure that describe the
integration scheme we discussed. (Hint: use plot to plot the cosine curve.
Use bar to draw the rectangles that depict the integrated value for each
interval. Save as plotIntegral.m
2. Compute the integrals using 10 different increment sizes (h), for m=10, 20,
30, . . . , 100. Plot these 10 values to see how the solution converges to the
analytical value of 1.
Hands On Exercise
Introduction to MATLAB
34
a = 0; b=pi/2; % lower and upper limits of integration
m = 8; % number of increments
h = (b-a)/m; % increment size
x= a+h/2:h:b-h/2; % m mid-points
bh = bar(x,cos(x),1,'c'); % make bar chart with the bars in cyan
hold % all plots will be superposed on same figure
x = a:h/10:b; % use more points at which to evaluate cosine
f = cos(x); % compute cosine at x
ph = plot(x,f,'r'); % plots x vs f, in red
% Compute integral with different values of m to study convergence
for i=1:10
n(i) = 10+(i-1)*10;
h = (b-a)/n(i);
x = a+h/2:h:b-h/2;
integral(i) = sum(cos(x)*h);
end
figure % create a new figure
plot(n, integral)
Hands On Exercise Solution
Introduction to MATLAB
35
 SCV home page (www.bu.edu/tech/research)
 Resource Applications
www.bu.edu/tech/accounts/special/research/accounts
 Help
• System
• help@katana.bu.edu, bu.service-now.com
• Web-based tutorials (
www.bu.edu/tech/research/training/tutorials)
(MPI, OpenMP, MATLAB, IDL, Graphics tools)
• HPC consultations by appointment
• Kadin Tseng (kadin@bu.edu)
• Yann Tambouret (yannpaul@bu.edu)
Useful SCV Info
Introduction to MATLAB
36

More Related Content

Similar to intro2matlab-basic knowledge about Matlab.pptx (20)

PPT
Matlab Basic Tutorial
Muhammad Rizwan
 
PDF
Introduction to MATLAB
Dun Automation Academy
 
PPT
Introduction to Matlab.ppt
Ravibabu Kancharla
 
PPTX
Matlab ppt
chestialtaff
 
PDF
MATLAB_Introduction RS&GIS training geomatics
kiavarzmajid1
 
PPT
Matlab practical and lab session
Dr. Krishna Mohbey
 
PPT
WIDI FREAK MANUSIA SETENGAH EDIOTDAN LEMBOT
IrlanMalik
 
PPT
Brief Introduction to Matlab
Tariq kanher
 
PPT
MatlabIntro1234.ppt.....................
RajeshMadarkar
 
PPTX
Introduction to matlab lecture 1 of 4
Randa Elanwar
 
PPT
WIDI ediot autis dongok part 1.ediot lu lemot lu setan lu
IrlanMalik
 
PPT
MatlabIntro.ppt
ShwetaPandey248972
 
PPT
MatlabIntro.ppt
konkatisandeepkumar
 
PPT
MatlabIntro.ppt
ssuser772830
 
PPT
MatlabIntro.ppt
Rajmohan Madasamy
 
PPT
Matlab intro
THEMASTERBLASTERSVID
 
PPT
Introduction to matlab
Tarun Gehlot
 
PPT
Matlab anilkumar
THEMASTERBLASTERSVID
 
PPTX
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
prashantkumarchinama
 
PPT
WIDI ediot autis dongok part 3.EDIOT LU LEMBOT LY
IrlanMalik
 
Matlab Basic Tutorial
Muhammad Rizwan
 
Introduction to MATLAB
Dun Automation Academy
 
Introduction to Matlab.ppt
Ravibabu Kancharla
 
Matlab ppt
chestialtaff
 
MATLAB_Introduction RS&GIS training geomatics
kiavarzmajid1
 
Matlab practical and lab session
Dr. Krishna Mohbey
 
WIDI FREAK MANUSIA SETENGAH EDIOTDAN LEMBOT
IrlanMalik
 
Brief Introduction to Matlab
Tariq kanher
 
MatlabIntro1234.ppt.....................
RajeshMadarkar
 
Introduction to matlab lecture 1 of 4
Randa Elanwar
 
WIDI ediot autis dongok part 1.ediot lu lemot lu setan lu
IrlanMalik
 
MatlabIntro.ppt
ShwetaPandey248972
 
MatlabIntro.ppt
konkatisandeepkumar
 
MatlabIntro.ppt
ssuser772830
 
MatlabIntro.ppt
Rajmohan Madasamy
 
Matlab intro
THEMASTERBLASTERSVID
 
Introduction to matlab
Tarun Gehlot
 
Matlab anilkumar
THEMASTERBLASTERSVID
 
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
prashantkumarchinama
 
WIDI ediot autis dongok part 3.EDIOT LU LEMBOT LY
IrlanMalik
 

Recently uploaded (20)

PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPTX
How to Set Maximum Difference Odoo 18 POS
Celine George
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PPTX
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PDF
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PPTX
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
How to Set Maximum Difference Odoo 18 POS
Celine George
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
Dimensions of Societal Planning in Commonism
StefanMz
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
Ad

intro2matlab-basic knowledge about Matlab.pptx

  • 1. INTRODUCTION TO MATLAB Kadin Tseng Boston University Scientific Computing and Visualization
  • 2.  It is developed by The Mathworks, Inc. (http://www.mathworks.com)  It is an interactive, integrated, environment • for numerical/symbolic, scientific computations and other apps. • shorter program development and debugging time than traditional programming languages such as FORTRAN and C. • slow (compared with FORTRAN or C) because it is interpreted. • automatic memory management; no need to declare arrays. • intuitive, easy to use. • compact notations. What is MATrix LABoratory ? Introduction to MATLAB 2
  • 3.  Latest version is MATLAB 2012b  For Windows: double click MATLAB icon  For Linux Cluster: katana% matlab  Either case spawns a MATLAB window with >> prompt. >> % from % to end of line used for code documentation >> version % this will tell you the running MATLAB version ans = 7.12.0.635 (R2011a) >> help % lists available packages/toolboxes on system. >> help elfun % lists functions in elementary functions package >> help sin % instructions on the sine function >> lookfor sine % if you don’t know the function name … >> doc sin % for full details o ffunction >> quit % to quit MATLAB Getting Started With MATLAB Introduction to MATLAB 3
  • 4.  Variable, function, file names • is case sensitive, e.g., NAME and Name are 2 distinct names. • variable begins with a letter, e.g., A2z or a2z • can be a mix of letters, digits, and underscores (e.g., vector_A) • reserved characters: % = + – ~ ; : ! ' [ ] ( ) , @ # $ & ^ • up to 63 characters • A function performs a pre-defined task based on input to yield certain outcome.  File name • MATLAB command files should be named with a suffix of ".m", e.g., myfile.m. An m-file typically contains a sequence of MATLAB commands that will be executed in order • A file may contain a collection of commands, functions Note: To run, enter m-file, without .m, e.g., >> myfile Rules on Variables and File Names Introduction to MATLAB 4
  • 5. • Some characters are reserved by MATLAB for various purposes. Some as arithmetic or matrix operators: =, +, - , *, / , and others are used to perform a multitude of operations. Reserved characters cannot be used in variable or function names. • >> % anything after % until the end of line is treated as comments >> • >> 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 Reserved Characters % = ; , Introduction to MATLAB 5
  • 6. • >> 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 • >> X(2,3) % ( ) for subscripting; why ans ? ans = 6 Reserved Characters : [ ] ( ) Introduction to MATLAB 6
  • 7. >> 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 >> X = [1 2 3; 4 5 6]; size(X) % figure out the size (dimensions) of X ans = 2 3 >> X = [1 2 3; 4 5 6]; numel(X) % total number of entries in X ans = 6 Reserved Characters … and ' Introduction to MATLAB 7
  • 8. • >> !dir % “!” lets you run a command in MS Windows Volume in drive C has no label. Volume Serial Number is 6860-EA46 Directory of C:Program FilesMATLAB704work 01/31/2007 10:56 AM <DIR> . 01/31/2007 10:56 AM <DIR> .. 06/13/2006 12:09 PM 12 foo.exe 06/13/2006 08:57 AM 77 mkcopy.m • >> !ls -l % “!” lets you run a similar command in Unix/Linux total 0 -rw-r--r-- 1 kadin scv 0 Jan 19 15:53 file1.m -rw-r--r-- 1 kadin scv 0 Jan 19 15:53 file2.m -rw-r--r-- 1 kadin scv 0 Jan 19 15:53 file3.m >> system(‘ls -l’) % more general form; also unix(‘ls -l’) Reserved Character ! (or system) Introduction to MATLAB 8
  • 9. >> 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 >> B = A' % B is transpose of A B = 1 4 2 5 3 6 Other ways to create B ? (hint: with a and b ) Array operations Introduction to MATLAB 9
  • 10. >> 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 >> 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 Matrix Operations Introduction to MATLAB 10
  • 11. >> whos % detail listing of workspace variables Name Size Bytes Class Attributes A 2x3 48 double B 3x2 48 double C 2x2 32 double D 2x3 48 double E 2x3 48 double a 1x3 24 double b 1x3 24 double c 1x3 24 double >> A = single(A); % recast A to single data type to save memory >> whos Name Size Bytes Class A 2x3 24 single >> clear % delete all workspace variables Data Precisions Introduction to MATLAB 11
  • 12. 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, . . . Trigonometric and hyperbolic functions : sin, cos, sqrt, exp, . . . These utilities can be used on scalar or vector inputs >> a = sqrt(5); v = [1 2 3]; A = sqrt(v); For Loops Introduction to MATLAB 12
  • 13. Scalar operation . . . a = zeros(3); b = zeros(3); for j=1:3 for i=1:3 a(i,j) = rand; % use rand to generate a random number if a(i,j) > 0.5 b(i,j) = 1; end end end Equivalent vector operations . . . A = rand(3); % A is a 3x3 random number double array B = zeros(3); % Initialize B as a 3x3 array of zeroes B(A > 0.5) = 1; % set to 1 all elements of B for which A > 0.5 if Conditional Introduction to MATLAB 13
  • 14. A cell array is a special array of arrays. Each element of the cell array may point to a scalar, an array, or another cell array. >> C = cell(2, 3); % create 2x3 empty cell array >> M = magic(2); >> a = 1:3; b = [4;5;6]; s = 'This is a string.'; >> C{1,1} = M; C{1,2} = a; C{2,1} = b; C{2,2} = s; C{1,3} = {1}; C = [2x2 double] [1x3 double] {1x1 cell} [2x1 double] ‘This is a string.‘ [] >> C{1,1} % prints contents of a specific cell element ans = 1 3 4 2 >> C(1,:) % prints first row of cell array C; not its content Related utilities: iscell, cell2mat Cell Arrays Introduction to MATLAB 14
  • 15. Ideal layout for grouping arrays that are related. >> name(1).last = ‘Smith’; name(2).last = ‘Hess’; >> name(1).first = ‘Mary’; name(2).first = ‘Robert’; >> name(1).sex = ‘female’; name(2).sex = ‘male’; >> name(1).age = 45; name(2).age = 50; >> name(2) ans = last: 'Hess' first: 'Robert' sex: 'male' age: 50 Alternative style: >> name = struct(‘last’,{Smith’,’Hess’}, ‘first’,{Mary’,’Robert’},… (‘sex’,{female’,’male’}, ‘age’,{45,50}); Related utilities: isstruct, fieldnames, getfield, isfield Structures Introduction to MATLAB 15
  • 16. There are many types of files in MATLAB. Only script-, function-, and mat-files are covered here: 1.script m-files (.m) -- group of commands; reside in base workspace 2.function m-files (.m) -- memory access controlled; parameters passed as input, output arguments; reside in own workspace 3.mat files (.mat) -- binary (or text) files handled with save and load 4.mex files (.mex) -- runs C/FORTRAN codes from m-file 5.eng files (.eng) -- runs m-file from C/FORTRAN code 6.C codes (.c) – C codes generated by MATLAB compiler 7.P codes (.p) – converted m-files to hide source for security File Types Introduction to MATLAB 16
  • 17. If you have a group of commands that are expected to be executed repeatedly, it is convenient to save them in a file . . . >> edit mytrig.m % enter commands in editor window a=sin(x); % compute sine x (radians) b=cos(x); % compute cosine x (radians) disp( [‘a = ‘ num2str(a) ] ) % prints a; here, [ . . . ] constitutes a string array disp( [‘b = ‘ num2str(b) ] ) % prints b 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 Define x, then use it in mytrig.m: >> x=30*pi/180; % converts 30 degrees to radians >> mytrig % x is accessible to mytrig.m; share same workspace a = 0.5000 b = 0.8660 Script m-file Introduction to MATLAB 17
  • 18. • It is declared with the key word function, with optional input parameters on the right and optional output on the left of =. All other parameters within function reside in function’s own workspace. Use MATLAB editor to create file: >> edit average.m function avg=average(x) % function avg=average(x) % Computes the average of x % x (input) matrix for which an average is sought % avg (output) the average of x avg = sum(x)/numel(x); % the average end Save the above with File/Save • Recommendation: saves file with name same as function name • It may be called from a script, another function, or on command line: • >> a = average(1:3) % a = (1 + 2 + 3) / 3 a = 2 >> help average % prints contiguous lines with % in average Function m-files Introduction to MATLAB 18
  • 19. Scripts • Pros: - convenient; script’s variables are in same workspace as caller’s • Cons: - slow; script comands loaded and interpreted each time it is used - risks of variable name conflict inside & outside of script Functions • Pros: • Scope of function’s variables is confined to within function. No worry for name conflict with those outside of function. • What comes in and goes out are tightly controlled which helps when debugging becomes necessary. • Compiled the first time it is used; runs faster subsequent times. • Easily be deployed in another project. • Auto cleaning of temporary variables. • Cons: • 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. Script or Function m-file ? Introduction to MATLAB 19
  • 20. >> magic(n) % creates a special n x n matrix; handy for testing >> zeros(n,m) % creates n x m matrix of zeroes (0) >> ones(n,m) % creates n x m matrix of ones (1) >> rand(n,m) % creates n x m matrix of random numbers >> repmat(a,n,m) % replicates a by n rows and m columns >> diag(M) % extracts the diagonals of a matrix M >> help elmat % list all elementary matrix operations ( or elfun) >> abs(x); % absolute value of x >> exp(x); % e to the x-th power >> fix(x); % rounds x to integer towards 0 >> log10(x); % common logarithm of x to the base 10 >> rem(x,y); % remainder of x/y >> mod(x, y); % modulus after division – unsigned rem >> sqrt(x); % square root of x >> sin(x); % sine of x; x in radians >> acoth(x) % inversion hyperbolic cotangent of x Some Frequently Used Functions Introduction to MATLAB 20
  • 21.  Line plot  Bar graph  Surface plot  Contour plot  MATLAB tutorial on 2D, 3D visualization tools as well as other graphics packages available in our tutorial series. MATLAB Graphics Introduction to MATLAB 21
  • 22. >> t = 0:pi/100:2*pi; >> y = sin(t); >> plot(t,y) Line Plot Introduction to MATLAB 22
  • 23. >> xlabel(‘t’); >> ylabel(‘sin(t)’); >> title(‘The plot of t vs sin(t)’); Line Plot Introduction to MATLAB 23
  • 24. >> y2 = sin(t-0.25); >> y3 = sin(t+0.25); >> plot(t,y,t,y2,t,y3) % make 2D line plot of 3 curves >> legend('sin(t)','sin(t-0.25)','sin(t+0.25',1) Line Plot Introduction to MATLAB 24
  • 25. Generally, MATLAB’s default graphical settings are adequate which make plotting fairly effortless. For more customized effects, use the get and set commands to change the behavior of specific rendering properties. >> hp1 = plot(1:5) % returns the handle of this line plot >> get(hp1) % to view line plot’s properties and their values >> set(hp1, ‘lineWidth’) % show possible values for lineWidth >> set(hp1, ‘lineWidth’, 2) % change line width of plot to 2 >> gcf % returns current figure handle >> gca % returns current axes handle >> get(gcf) % gets current figure’s property settings >> set(gcf, ‘Name’, ‘My First Plot’) % Figure 1 => Figure 1: My First Plot >> get(gca) % gets the current axes’ property settings >> figure(1) % create/switch to Figure 1 or pop Figure 1 to the front >> clf % clears current figure >> close % close current figure; “close 3” closes Figure 3 >> close all % close all figures Customizing Graphical Effects Introduction to MATLAB 25
  • 26. >> x = magic(3); % generate data for bar graph >> bar(x) % create bar chart >> grid % add grid • To add a legend, either use the legend command or via insert in the Menu Bar on the figure. Many other actions are available in Tools. • It is convenient to use the Menu Bar to change a figure’s properties interactively. However, the set command is handy for non-interactive changes, as in an m-file. • Similarly, save a graph via the Menu Bar’s File / Save as or >> print –djpeg 'mybar' % file mybar.jpg saved in current dir Save A Plot With print Introduction to MATLAB 26
  • 27. >> x = magic(3); % generate data for bar graph >> bar(x) % create bar chart >> grid % add grid for clarity 2D Bar Graph Introduction to MATLAB 27
  • 28. • Many MATLAB utilities are available in both command and function forms. • For this example, both forms produce the same effect: • >> print –djpeg 'mybar' % print as a command • >> print('-djpeg', 'mybar') % print as a function • For this example, the command form yields an unintentional outcome: • >> myfile = 'mybar'; % myfile is defined as a string • >> print –djpeg myfile % as a command, myfile is treated as text • >> print('-djpeg', myfile) % as a function, myfile is treated as a variable • Other frequently used utilities that are available in both forms are: • save, load Use MATLAB Command or Function ? Introduction to MATLAB 28
  • 29. >> 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’) Surface Plot Introduction to MATLAB 29
  • 30. >> Z = peaks; >> contour(Z, 20) % contour plot of Z with 20 contours >> contourf(Z, 20); % with color fill >> colormap('hot') % map option >> colorbar % make color bar Contour Plots Introduction to MATLAB 30
  • 31. • Integration of cosine from 0 to π/2. • Use mid-point rule for simplicity. Integration Example Introduction to MATLAB 31 h h i a dx x dx x m i m i ih a h i a b a ) ) ( cos( ) cos( ) cos( 2 1 1 1 ) 1 (             mid-point of increment cos(x) h a = 0; b = pi/2; % range m = 8; % # of increments h = (b-a)/m; % increment
  • 32. % integration with for-loop tic m = 100; a = 0; % lower limit of integration b = pi/2; % upper limit of integration h = (b – a)/m; % increment length integral = 0; % initialize integral for i=1:m x = a+(i-0.5)*h; % mid-point of increment i integral = integral + cos(x)*h; end toc Integration Example — using for-loop Introduction to MATLAB 32 X(1) = a + h/2 X(m) = b - h/2 a h b
  • 33. % integration with vector form tic m = 100; a = 0; % lower limit of integration b = pi/2; % upper limit of integration h = (b – a)/m; % increment length x = a+h/2:h:b-h/2; % mid-point of m increments integral = sum(cos(x))*h; toc Integration Example — using vector form Introduction to MATLAB 33 X(1) = a + h/2 X(m) = b - h/2 a h b
  • 34. 1. Use the editor to write a program to generate the figure that describe the integration scheme we discussed. (Hint: use plot to plot the cosine curve. Use bar to draw the rectangles that depict the integrated value for each interval. Save as plotIntegral.m 2. Compute the integrals using 10 different increment sizes (h), for m=10, 20, 30, . . . , 100. Plot these 10 values to see how the solution converges to the analytical value of 1. Hands On Exercise Introduction to MATLAB 34
  • 35. a = 0; b=pi/2; % lower and upper limits of integration m = 8; % number of increments h = (b-a)/m; % increment size x= a+h/2:h:b-h/2; % m mid-points bh = bar(x,cos(x),1,'c'); % make bar chart with the bars in cyan hold % all plots will be superposed on same figure x = a:h/10:b; % use more points at which to evaluate cosine f = cos(x); % compute cosine at x ph = plot(x,f,'r'); % plots x vs f, in red % Compute integral with different values of m to study convergence for i=1:10 n(i) = 10+(i-1)*10; h = (b-a)/n(i); x = a+h/2:h:b-h/2; integral(i) = sum(cos(x)*h); end figure % create a new figure plot(n, integral) Hands On Exercise Solution Introduction to MATLAB 35
  • 36.  SCV home page (www.bu.edu/tech/research)  Resource Applications www.bu.edu/tech/accounts/special/research/accounts  Help • System • [email protected], bu.service-now.com • Web-based tutorials ( www.bu.edu/tech/research/training/tutorials) (MPI, OpenMP, MATLAB, IDL, Graphics tools) • HPC consultations by appointment • Kadin Tseng ([email protected]) • Yann Tambouret ([email protected]) Useful SCV Info Introduction to MATLAB 36