0% found this document useful (0 votes)
163 views53 pages

6.057 Introduction To MATLAB

This document outlines an introduction to MATLAB course. It discusses the course layout, getting started in MATLAB, scripts, variable types, scalar and array operations, functions, plotting and more. Key sections include how to get started in MATLAB, write scripts to save and run code, create different variable types like scalars, vectors and matrices, perform basic operations on variables, and how to generate simple plots of data. The goal is to introduce students to the MATLAB programming environment and basic programming concepts.

Uploaded by

Amir Hossein
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
163 views53 pages

6.057 Introduction To MATLAB

This document outlines an introduction to MATLAB course. It discusses the course layout, getting started in MATLAB, scripts, variable types, scalar and array operations, functions, plotting and more. Key sections include how to get started in MATLAB, write scripts to save and run code, create different variable types like scalars, vectors and matrices, perform basic operations on variables, and how to generate simple plots of data. The goal is to introduce students to the MATLAB programming environment and basic programming concepts.

Uploaded by

Amir Hossein
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

6.

057
Introduction to MATLAB

1
Course Layout





2
MATLAB Basics




3
Outline

4
Getting Started


5
Editor

Current Directory

Workspace

Command Window

Details

6
MATLAB R2018a. Courtesy of The MathWorks, Inc. Used with permission. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.
Customization

7
MATLAB R2018a. Courtesy of The MathWorks, Inc. Used with permission. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.
Installing Toolboxes

● ○




○ 8
MATLAB R2018a. Courtesy of The MathWorks, Inc. Used with permission. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.
Making Folders

MATLAB
↳ IAP MATLAB
↳ Day1 9
MATLAB R2018a. Courtesy of The MathWorks, Inc. Used with permission. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.
Help/Docs
● help


○ help sin


○ doc sin

○ docsearch sin trigonometric

10
Outline

11
Scripts: Overview





○ edit MyFileName.m

12
Scripts: Some notes






13
Exercise: Scripts

Hello world!
I am going to learn MATLAB!

disp(...)
'This is a string'

14
Outline

15
Variable Types








16
Naming Variables

myNumberVariable = 3.14
myStringVariable = 'hello world!'




○ var1 Var1

17
Naming Variables (cont.)

i, j:

pi:

ans:

Inf, -Inf:

NaN:

ii, jj, kk, 18


Scalars

○ a = 10


○ c = 1.3 * 45 - 2 * a

○ cooldude = 13/3;

19
Arrays



MATLAB makes vectors easy!


That’s its power!

20
Row vectors

○ row = [ 1 2 3.2 4 6 5.4 ];
○ row = [ 1, 2, 4, 7, 4.3, 1.1 ];

21
Column vectors

○ col = [ 1; 2; 3.2; 4; 6; 5.4 ];


Size and length



23
Matrices


■ a= [1 2;3 4];

a = [1 2];
b = [3 4];
c = [5;6];
d = [a;b];
e = [d c];
f = [[e e];[a b a]];
str = ['Hello, I am ' 'John'];

● 24
save/clear/load

○ save myFile a b



○ clear a b


○ load myFile

25
Exercise: Variables

● start clock
● start
● start help clock
● datestr
startString
● start startString startTime

26
Exercise: Variables II

● load

● disp

27
Outline

28
Basic Scalar Operations

○ 7/45
○ (1+1i)*(1+2i)
○ 1/0
○ 0/0

○ 4^2
○ (3+4*1j)^2

○ ((2+3)*3)^0.1

29
Built-in Functions


○ sqrt(2)
○ log(2), log10(0.23)
○ cos(1.2), atan(-.8)
○ exp(2+4*1i)
○ round(1.4), floor(3.3), ceil(4.23)
○ angle(1i); abs(1+1i);

30
Exercise: Scalars
helloWorld


tau

endOfClass

● endOfClass knowledgeAtEnd
● knowledgeAtEnd
At the end of 6.057, I will know X% of MATLAB

num2str
31
Transpose

○ a = [1 2 3 4+i]
○ transpose(a)
○ a'
○ a.'



32
Addition and Subtraction

33
Addition and Subtraction

● c = row + column

● c = row.’ + column
● c = row + column.’

● s=sum(row);
● p=prod(row);
34
Element-wise functions



35
Element-wise functions

a=[1 2 3];b=[4;2;1];

a.*b , a./b , a.^b → all errors

a.*b.', a./b.’, a.^(b.’) → all valid

36
Operators





37
Exercise: Vector Operations



38
Exercise: Vector Operations


At this time, I know X% of MATLAB

39
Automatic Initialization
• Initialize a vector of ones, zeros, or random numbers
» o=ones(1,10)
➢ Row vector with 10 elements, all 1
» z=zeros(23,1)
➢ Column vector with 23 elements, all 0
» r=rand(1,45)
➢ Row vector with 45 elements (uniform (0,1))
» n=nan(1,69)
➢ Row vector of NaNs (representing uninitialized
variables)

40
Automatic Initialization
• To initialize a linear vector of values use linspace
» a=linspace(0,10,5)
➢ Starts at 0, ends at 10 (inclusive), 5 values

• Can also use colon operator (:)


» b=0:2:10
➢ Starts at 0, increments by 2, and ends at or before 10
➢ Increment can be decimal or negative
» c=1:5
➢ If increment is not specified, default is 1

• To initialize logarithmically spaced values use logspace


41 ➢ Similar to linspace, but see help
Exercise: Vector Functions
Calculate your learning trajectory
• In helloWorld.m, make a linear time vector tVec that has
10,000 samples between 0 and endOfClass
• Calculate the value of your knowledge
(call it knowledgeVec) at each of these time points
using the same equation as before:

42
Vector Indexing
• MATLAB indexing starts with 1, not 0
➢ We will not respond to any emails
where this is the problem.
• a(n) returns the nth element

a(1) a(2) a(3) a(4)


• The index argument can be a vector. In this case,
each element is looked up individually, and returned
as a vector of the same size as the index vector.
43

» x=[12 13 5 8];
Matrix Indexing
• Matrices can be indexed in two ways
➢ using subscripts (row and column)
➢ using linear indices (as if matrix is a vector)
• Matrix indexing: subscripts or linear indices

b(1,1) b(1,2) b(1) b(3)


b(2,1) b(2,2) b(2) b(4)

• Picking submatrices
44

» A = rand(5) % shorthand for 5x5 matrix


Advanced Indexing 1

• To select rows or columns of a matrix, use the :

» d=c(1,:); d=[12 5];


» e=c(:,2); e=[5;13];
» c(2,:)=[3 6]; %replaces second row of c

45
Advanced Indexing 2
• MATLAB contains functions to help you find desired values
» vec = [5 3 1 9 7]

• To get the minimum value and its index (similar for max):
» [minVal,minInd] = min(vec);

• To find the indices of specific values or ranges


» ind = find(vec == 9); vec(ind) = 8;
» ind = find(vec > 2 & vec < 6);
➢ find expressions can be very complex, more on this later
➢ When possible, logical indexing is faster than find!
➢ E.g., vec(vec == 9) = 8;
46
Exercise: Indexing
When will you know 50% of MATLAB?
• First, find the index where knowledgeVec is closest to 0.5.
Mathematically, what you want is the index where the value of
~ is at a minimum (use abs and min)
• Next, use that index to look up the corresponding time
in tVec and name this time halfTime
• Finally, display the string:
Convert halfTime to days by using secPerDay. I will know half of
MATLAB after X days

47
Outline
(1) Getting Started
(2) Scripts
(3) Making Variables
(4) Manipulating Variables
(5) Basic Plotting
Did everyone sign in?

48
Plotting
• Example
» x=linspace(0,4*pi,10);
» y=sin(x);

• Plot values against their index


» plot(y);
• Usually we want to plot y versus x
» plot(x,y);

MATLAB makes visualizing data


fun and easy!
49
What does plot do?
• plot generates dots at each (x,y) pair
and then connects the dots with a line
• To make plot of a function look smoother, evaluate at more points
» x=linspace(0,4*pi,1000);
» plot(x,sin(x));
• x and y vectors must be same size or else you’ll get an error
» plot([1 2], [1 2 3])
10 x values: 1000 x values:

50
Exercise: Plotting
Plot the learning trajectory
• In helloWorld.m, open a new figure (use figure)
• Plot knowledge trajectory using tVec and knowledgeVec
• When plotting, convert tVec to days by using secPerDay
• Zoom in on the plot to verify that
halfTime was calculated correctly

51
End of Lecture 1
(1) Getting Started
(2) Scripts
(3) Making Variables
(4) Manipulating Variables
(5) BHope that wasn’t too much and
you enjoyed it!!

52
MIT OpenCourseWare
https://ocw.mit.edu

6.057 Introduction to MATLAB


IAP 2019

For information about citing these materials or our Terms of Use, visit: https://ocw.mit.edu/terms.

53

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy