90
MATLAB: Introduction Front Matter MATLAB: Introduction Part 1 Bruno Abreu Calfa Last Update: August 9, 2011

Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Front Matter

MATLAB: IntroductionPart 1

Bruno Abreu Calfa

Last Update: August 9, 2011

Page 2: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Table of Contents

Outline

What is MATLAB?

MATLAB Windows

MATLAB as a Calculator

MATLAB Classes

Scripts and FunctionsWriting MATLAB ProgramsCode Cells and Publishing

Page 3: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

What is MATLAB?

Outline

What is MATLAB?

MATLAB Windows

MATLAB as a Calculator

MATLAB Classes

Scripts and FunctionsWriting MATLAB ProgramsCode Cells and Publishing

Page 4: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

What is MATLAB?

A powerful tool!

I MATLAB stands for Matrix LaboratoryI Enhanced by toolboxes (specific routines for an area of

application)I OptimizationI StatisticsI Control SystemI BioinformaticsI . . .

I Excellent for numerical computationsI Commonly regarded as a ‘Rapid Prototyping Tool’I Used in industry and academia

Page 5: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

What is MATLAB?

Help with MATLAB?

I MATLAB’s HelpI GoogleI A book about MATLAB

Page 6: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Windows

Outline

What is MATLAB?

MATLAB Windows

MATLAB as a Calculator

MATLAB Classes

Scripts and FunctionsWriting MATLAB ProgramsCode Cells and Publishing

Page 7: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Windows

Main Window I

I Command Window (prompt >>)I Current DirectoryI Workspace (contains variables stored in memory)I Help Menu

Page 8: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Windows

Main Window II

Page 9: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Windows

Editor Window I

I Window Menu (Tile)I Debug Menu (Run, Step, Step In, Step Out...)I Cell Menu (Cell Mode)

Page 10: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Windows

Editor Window II

Page 11: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Outline

What is MATLAB?

MATLAB Windows

MATLAB as a Calculator

MATLAB Classes

Scripts and FunctionsWriting MATLAB ProgramsCode Cells and Publishing

Page 12: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I MATLAB supports the following mathematical operators

Operator Operation+ Addition- Subtraction* Multiplication/ Divisionˆ Exponentiation

I Some examples:I >> 1 + 2

I >> 2*3 + 4I >> 4/3 - 3/4 + 2ˆ3

Page 13: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I MATLAB supports the following mathematical operators

Operator Operation+ Addition- Subtraction* Multiplication/ Divisionˆ Exponentiation

I Some examples:I >> 1 + 2I >> 2*3 + 4

I >> 4/3 - 3/4 + 2ˆ3

Page 14: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I MATLAB supports the following mathematical operators

Operator Operation+ Addition- Subtraction* Multiplication/ Divisionˆ Exponentiation

I Some examples:I >> 1 + 2I >> 2*3 + 4I >> 4/3 - 3/4 + 2ˆ3

Page 15: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4

I >> 2*(3 + 4)I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 16: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)

I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 17: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)I >> 4.2/3 + 1.2

I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 18: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)

I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 19: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)

I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 20: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))

I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 21: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2

I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 22: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB as a Calculator

Basic Operators

I Beware of operator precedence rules!I >> 2*3 + 4I >> 2*(3 + 4)I >> 4.2/3 + 1.2I >> 4.2/(3 + 1.2)I >> 15/(2 + 3)*(4 - 1)I >> 15/((2 + 3)*(4 - 1))I >> 2ˆ3/2I >> 2ˆ(3/2)

I Use parentheses to enforce the desired order

Page 23: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Outline

What is MATLAB?

MATLAB Windows

MATLAB as a Calculator

MATLAB Classes

Scripts and FunctionsWriting MATLAB ProgramsCode Cells and Publishing

Page 24: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

All Matrices!

I “Everything” in MATLAB is a matrixI A scalar is a 1-by-1 matrixI A 1D array of n elements can be a n-by-1 (row vector) or

a 1-by-n (column vector) matrixI A string of n characters is a 1-by-n matrixI . . .

I Some MATLAB classes:I double (Double-precision floating-point number array)

(default)I single (Single-precision floating-point number array)I char (Character array)I cell (Cell array)I struct (Structure array)I function_handle (Array of values for calling functions

indirectly)

Page 25: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1

I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 26: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreter

I >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 27: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415

I >> sin(a); % ‘;’ avoids displaying the result of thecommand

I >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 28: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

command

I >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 29: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrix

I >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 30: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3

I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 31: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant π

I >> d = rand % A random scalarI Use the commands who or whos to list the variables

defined in the WorkspaceI Other common functions are available:exp, tan, sinh, acos, . . .

Page 32: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 33: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 34: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Scalar Variables: 1-by-1 Matrices!

I Use the ‘=’ sign for assignmentI >> a = 1 % The scalar variable ‘a’ stores the value 1I >> % This is a comment and is ignored by the interpreterI >> sin(a) % Sine of ‘a’ = 0.8415I >> sin(a); % ‘;’ avoids displaying the result of the

commandI >> size(a) % = [1,1], i.e. 1-by-1 matrixI >> b = a + 2 % b = 3I >> c = cos(b*pi/.2) % ‘pi’ is the builtin constant πI >> d = rand % A random scalar

I Use the commands who or whos to list the variablesdefined in the Workspace

I Other common functions are available:exp, tan, sinh, acos, . . .

Page 35: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 36: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vector

I >> v3 = v2 - v1 % Error! Imcompatible matrixdimensions

I >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 37: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensions

I >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 38: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’

I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 39: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)

I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 40: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplication

I >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 41: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’

I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 42: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operation

I >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 43: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]

I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 44: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 array

I >> p = prod(v1) % Product of elements = 6

Page 45: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

1D Arrays: Real Vectors (or Matrices!)

I Use [...,...] or [... ...] for horizontal stacking and[...;...] for vertical stacking

I >> v1 = [1 2 3] % Row vector, same as v1 =[1,2,3]

I >> v2 = [4;5;6] % Column vectorI >> v3 = v2 - v1 % Error! Imcompatible matrix

dimensionsI >> v3 = v2 - v1.’ % Transpose a real matrix with .’I >> v4 = v1*v2 % Dot product, also dot(v1,v2)I >> v7 = .1*v4 % Scalar-vector multiplicationI >> v7(1) % First element of array ‘v7’I >> v8 = exp(v7) % Element-wise operationI >> sz8 = size(v8) % = [1 3]I >> v9 = rand(1,5) % Random 1-by-5 arrayI >> p = prod(v1) % Product of elements = 6

Page 46: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3

I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 47: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1

I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 48: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrix

I >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 49: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix addition

I >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 50: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agree

I >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 51: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’

I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 52: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’

I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 53: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimension

I >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 54: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise division

I >> m6 = tan(m5) % Element-wise operation

Page 55: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

2D Arrays: Real Matrices

I Use horizontal stacking and vertical stacking likewiseI >> m1 = [1 2 3; 4 5 6] % 2-by-3I >> m1p = [1,2,3; 4,5,6] % 2-by-3, same as m1I >> m2 = rand(2,3) % Random 2-by-3 matrixI >> m3 = m1 + m2 % Matrix additionI >> m4 = m1*m2 % Error! Dimensions don’t agreeI >> m4 = m1*m2.’ % OK! Transpose a real matrix with .’I >> m4(1,2) % Element in row 1 and column 2 of ‘m4’I >> len4 = length(m4) % Size of longest dimensionI >> m5 = m3/2 % Element-wise divisionI >> m6 = tan(m5) % Element-wise operation

Page 56: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3

I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 57: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3

I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 58: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]

I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 59: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]

I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 60: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]

I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 61: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2

I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 62: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2

I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 63: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Element-wise Operations

I The following are element-wise mathematical operators

Operator Operation.* Element-wise Multiplication./ Element-wise Division.ˆ Element-wise Exponentiation

I More examples:I >> v1 = [1 2 3] % 1-by-3I >> v2 = [2 4 6] % 1-by-3I >> v3 = v1.*v2 % = [2 8 18]I >> v4 = v2./v1 % = [2 2 2]I >> v5 = v1.ˆv4 % = [1 4 9]I >> m1 = [0 1; 1 0] % 2-by-2I >> m2 = [3 5; 7 2] % 2-by-2I >> m3 = m1.*m2 % = [0 5; 7 0]

Page 64: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]

I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’I Do not forget linspace to generate linearly spaced

vectors!I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 65: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]

I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’I Do not forget linspace to generate linearly spaced

vectors!I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 66: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrix

I >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’I Do not forget linspace to generate linearly spaced

vectors!I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 67: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]

I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3of ‘m1’

I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of‘m1’

I Do not forget linspace to generate linearly spacedvectors!

I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 68: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’

I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of‘m1’

I Do not forget linspace to generate linearly spacedvectors!

I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 69: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’

I Do not forget linspace to generate linearly spacedvectors!

I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 70: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’I Do not forget linspace to generate linearly spaced

vectors!I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 71: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’I Do not forget linspace to generate linearly spaced

vectors!I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 72: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

The Colon (:) Operator

I Use it extensively!I >> v1 = 1:10 % Same as v1 = [1,2,3,...,10]I >> v2 = 0:.1:1 % Same as v2 = [0,.1,.2,...,1]I >> m1 = rand(5) % Random 5-by-5 matrixI >> v3 = v1(5:end) % v3 = [5,6,7,8,9,10]I >> v4 = m1(:,3) % ‘v4’ has the elements in column 3

of ‘m1’I >> v5 = m1(1,:) % ‘v5’ has the elements in row 1 of

‘m1’I Do not forget linspace to generate linearly spaced

vectors!I >> v6 = linspace(0,1,10) % =[0,0.1111,0.2222,...,1]

I >> v7 = linspace(0,10,5) % =[0,2.5,5,7.5,10]

I >> v8 = linspace(0,1,100) % =[0,0.0101,0.0202,...,1]

Page 73: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple string

I >> sz1 = size(str1) % = 1-by-13I >> a = rand; str2 = [’a = ’ num2str(a)] %

Horizontal stacking concatenates stringsI >> b = str2num(’500’)*rand % MATLAB has many

handy *2* functions!I Format your strings with sprintf

I >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 74: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple stringI >> sz1 = size(str1) % = 1-by-13

I >> a = rand; str2 = [’a = ’ num2str(a)] %Horizontal stacking concatenates strings

I >> b = str2num(’500’)*rand % MATLAB has manyhandy *2* functions!

I Format your strings with sprintfI >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 75: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple stringI >> sz1 = size(str1) % = 1-by-13I >> a = rand; str2 = [’a = ’ num2str(a)] %

Horizontal stacking concatenates strings

I >> b = str2num(’500’)*rand % MATLAB has manyhandy *2* functions!

I Format your strings with sprintfI >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 76: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple stringI >> sz1 = size(str1) % = 1-by-13I >> a = rand; str2 = [’a = ’ num2str(a)] %

Horizontal stacking concatenates stringsI >> b = str2num(’500’)*rand % MATLAB has many

handy *2* functions!

I Format your strings with sprintfI >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 77: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple stringI >> sz1 = size(str1) % = 1-by-13I >> a = rand; str2 = [’a = ’ num2str(a)] %

Horizontal stacking concatenates stringsI >> b = str2num(’500’)*rand % MATLAB has many

handy *2* functions!I Format your strings with sprintf

I >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 78: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple stringI >> sz1 = size(str1) % = 1-by-13I >> a = rand; str2 = [’a = ’ num2str(a)] %

Horizontal stacking concatenates stringsI >> b = str2num(’500’)*rand % MATLAB has many

handy *2* functions!I Format your strings with sprintf

I >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 79: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

Strings: char Arrays

I Remember that strings are also matrices in MATLAB!I >> str1 = ’Hello, world!’ % A simple stringI >> sz1 = size(str1) % = 1-by-13I >> a = rand; str2 = [’a = ’ num2str(a)] %

Horizontal stacking concatenates stringsI >> b = str2num(’500’)*rand % MATLAB has many

handy *2* functions!I Format your strings with sprintf

I >> sprintf(’Volume of reactor = %.2f’,10.23451) % Floating-point format with two decimal digits

I >> str3 = sprintf(’A large number = %e’,rand*10ˆ5) % Exponential notation format

I >> sprintf(’Another large number = %g’,rand*10ˆ5) % More compact format between %e and %f

Page 80: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

function_handle (@) Class

I Used in calling functions indirectly

I >> Sin = @sin; % The variable ‘Sin’ points to thefunction ‘sin’

I >> Sin(pi) % Evaluates the sine of π

I Can be used to create ‘anonymous functions’

I >> myfun = @(x) 1./(x.ˆ3 + 3*x - 5) %Anonymous function

I >> quad(myfun,0,1) % Adaptive Simpson quadratureto integrate ‘myfun’

Page 81: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

function_handle (@) Class

I Used in calling functions indirectly

I >> Sin = @sin; % The variable ‘Sin’ points to thefunction ‘sin’

I >> Sin(pi) % Evaluates the sine of π

I Can be used to create ‘anonymous functions’

I >> myfun = @(x) 1./(x.ˆ3 + 3*x - 5) %Anonymous function

I >> quad(myfun,0,1) % Adaptive Simpson quadratureto integrate ‘myfun’

Page 82: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

function_handle (@) Class

I Used in calling functions indirectly

I >> Sin = @sin; % The variable ‘Sin’ points to thefunction ‘sin’

I >> Sin(pi) % Evaluates the sine of π

I Can be used to create ‘anonymous functions’

I >> myfun = @(x) 1./(x.ˆ3 + 3*x - 5) %Anonymous function

I >> quad(myfun,0,1) % Adaptive Simpson quadratureto integrate ‘myfun’

Page 83: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

function_handle (@) Class

I Used in calling functions indirectly

I >> Sin = @sin; % The variable ‘Sin’ points to thefunction ‘sin’

I >> Sin(pi) % Evaluates the sine of π

I Can be used to create ‘anonymous functions’

I >> myfun = @(x) 1./(x.ˆ3 + 3*x - 5) %Anonymous function

I >> quad(myfun,0,1) % Adaptive Simpson quadratureto integrate ‘myfun’

Page 84: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

MATLAB Classes

function_handle (@) Class

I Used in calling functions indirectly

I >> Sin = @sin; % The variable ‘Sin’ points to thefunction ‘sin’

I >> Sin(pi) % Evaluates the sine of π

I Can be used to create ‘anonymous functions’

I >> myfun = @(x) 1./(x.ˆ3 + 3*x - 5) %Anonymous function

I >> quad(myfun,0,1) % Adaptive Simpson quadratureto integrate ‘myfun’

Page 85: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Scripts and Functions

Outline

What is MATLAB?

MATLAB Windows

MATLAB as a Calculator

MATLAB Classes

Scripts and FunctionsWriting MATLAB ProgramsCode Cells and Publishing

Page 86: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Scripts and Functions

Writing MATLAB Programs

M-Files

I The file with source code is called M-File (*.m)I Scripts: No input and no output arguments. Contain a

series of commands that may call other scripts andfunctions.

I Functions: Accept input and output arguments. Usuallycalled program routines and have a special definitionsyntax.

I Inside scripts and functions you may use programmingstatements, such as flow, loop, and error control

I Open the Editor Window and start coding!

Page 87: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Scripts and Functions

Writing MATLAB Programs

Function M-Files

I General form:

function [out1, out2, ...] = funname(in1, in2, ...)statement...

end % OptionalI Example:

function Z = virialgen(P,Pc,T,Tc,omega)Pr = P/Pc;Tr = T/Tc;[B0,B1] = virialB(Tr);Z = 1 + Pr/Tr*(B0 + omega*B1);

function [B0,B1] = virialB(Tr)B0 = 0.083 - 0.422/Tr^1.6;B1 = 0.139 - 0.172/Tr^4.2;

Page 88: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Scripts and Functions

Code Cells and Publishing

Code Cells

I Allow you to divide your M-files into sections (cells)I Enable you to execute cell by cellI Foundations for publishing your M-file to HTML, PDF, and

other formatsI To begin a code cell, type %% at the beginning of a lineI The first line after the %% is the title of the code cellI The next lines starting with % are a description of the code

cellI Place your code in the next linesI A new code cell starts at the next %% at the beginning of a

line

Page 89: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Scripts and Functions

Code Cells and Publishing

Code Cells: Example

I Simple example:

%% 99-999: Homework 1% Bruno Abreu Calfa

%% Problem 1x = linspace(0,1);y = sin(x.^2).*exp(-x.*tan(x));plot(x,y);

%% Problem 2a = 0;b = 1;f = @(t) exp(-t.^2);intf = quad(f,a,b);sprintf(’Integral of f from %g to %g = %g’,a,b,intf)

Page 90: Part 1 Bruno Abreu Calfa Last Update: August 9, 2011matlab.cheme.cmu.edu/wp...intro_part_1.beamer1.pdf · MATLAB: Introduction MATLAB Classes All Matrices! I “Everything” in MATLAB

MATLAB: Introduction

Scripts and Functions

Code Cells and Publishing

Publishing your Code

I Saves output of your code to a specific file typeI Formats available:

File Format Descriptiondoc Microsoft Word1

latex LATEX1

ppt Microsoft Powerpoint1

xml Extensible Markup Languagepdf Portable Document Formathtml Hypertext Markup Language

I MATLAB evaluates your M-file and generates the outputI To publish your M-file, go to: File -> Publish

1Syntax highlighting not preserved