0 views

Uploaded by Anonymous 5nbEAQYiX9

© All Rights Reserved

- Matlab Compiler
- MatlabSeminar Main
- Matlab Tutorial
- Mathematical Methods Lecture Notes
- Linear Algebra
- Editing and Debugging MATLAB Programs
- H&OE_ Brochure-Final-2018-2019.docx
- Build CAN Communication Simulink Models - MATLAB & Simulink
- Manuall
- MATLAB Environment
- electrical transient.pdf
- Simulation Lab PPT.ppt
- 130332121-Image-Acquisition-Matlab.pdf
- The finite element method
- MD ADAMS
- Gpu Computing With Matlab PDF
- Iview Quest
- 101
- Zeynep NFT Toolbox10sss
- Introduction

You are on page 1of 211

1224 Kinnear Road

Columbus, OH 43212

http://www.osc.edu/supercomputing/training/

1

Functions - Scope of Activity

support services empower Ohio’s scientists, engineers,

faculty, students, businesses and other clients.

government connect to the network. OSC also provides

engineering services, video conferencing, and support

through a 24x7 service desk.

researchers with custom needs, partner with regional,

national, and international researchers in groundbreaking

initiatives, and develop new tools.

Science delivers computational science training to students

and companies across Ohio.

Intro MATLAB

2

Instructor and STS Contact Info

Brian Guilfoos

guilfoos@osc.edu

614-292-2846

http://www.osc.edu/supercomputing/training/

Monday – Friday, 9am-12pm, 1pm-5pm

oschelp@osc.edu (preferred contact method)

614-292-1800

800-686-6472

Intro MATLAB

3

Table of Contents – Day One

Overview

Basic Interfaces

Arrays, Matrices, Operators

Programming

Data I/O

Intro MATLAB

4

Table of Contents – Day Two

Numerical Analysis

Graphics, Data Visualization, Movies

Inter-language Programming

Intro MATLAB

5

Overview

6

MATLAB

“MATrix LABoratory”

programming, visualization, and simulation package

science

Why?

Intro MATLAB

7

MATLAB’s Appeal

incrementally; excellent development and rapid

prototyping environment

Basic data element is the auto-indexed array

This allows quick solutions to problems that can be

formulated in vector or matrix form

Powerful GUI tools

Large collection of toolboxes: collections of topic-

related MATLAB functions that extend the core

functionality significantly

Intro MATLAB

8

MATLAB Toolboxes

Signal Processing

Optimization

Image Processing

Requirements Management Interface

Communications

Statistics

Frequency Domain System Identification

Neural Network

Symbolic/Extended Math Higher-Order Spectral Analysis

Mapping

Filter Design

Spline

Instrument Control Fuzzy Logic

Excel Link

Robust Control

Portable Graph Object

μ-Analysis and Synthesis

Intro MATLAB

9

Toolboxes, Software, & Links

Intro MATLAB

10

MATLAB System

Language: arrays and matrices, control flow, I/O, data

structures, user-defined functions and scripts

Working Environment: editing, variable management,

importing and exporting data, debugging, profiling

Graphics system: 2D and 3D data visualization, animation

and custom GUI development

Mathematical Functions: basic (sum, sin,…) to

advanced (fft, inv, Bessel functions, …)

API: can use MATLAB with C, Fortran, and Java, in either

direction

Intro MATLAB

11

Online MATLAB Resources

www.mathworks.com/

www.mathtools.net/MATLAB

www.math.utah.edu/lab/ms/matlab/matlab.html

web.mit.edu/afs/athena.mit.edu/software/matlab/

www/home.html

www.utexas.edu/its/rc/tutorials/matlab/

www.math.ufl.edu/help/matlab-tutorial/

www.indiana.edu/~statmath/math/matlab/links.html

www-h.eng.cam.ac.uk/help/tpl/programs/matlab.html

Intro MATLAB

12

References

Prentice Hall, 2004

for Scientists and Engineers, R. Pratap, Oxford University

Press, 2005.

Intro MATLAB

13

Some More Resources

http://www.eece.maine.edu/mm/matweb.html

dir.yahoo.com/Science/mathematics/software/matlab/

Newsgroup: comp.soft-sys.matlab

Intro MATLAB

14

Basic Interfaces

15

Main MATLAB Interface

Intro MATLAB

16

Some MATLAB Development Windows

Command Window: where you enter commands

Command History: running history of commands which is

preserved across MATLAB sessions

Current directory: Default is $matlabroot/work

Workspace: GUI for viewing, loading and saving MATLAB

variables

Array Editor: GUI for viewing and/or modifying contents of

MATLAB variables (openvar varname or double-click the

array’s name in the Workspace)

Editor/Debugger: text editor, debugger; editor works with file

types in addition to .m (MATLAB “m-files”)

Intro MATLAB

17

MATLAB Editor Window

Intro MATLAB

18

MATLAB Help Window (Very Powerful)

Intro MATLAB

19

Command-Line Help : List of MATLAB Topics

>> help

HELP topics:

matlab\ops - Operators and special characters.

matlab\lang - Programming language constructs.

matlab\elmat - Elementary matrices and matrix manipulation.

matlab\elfun - Elementary math functions.

matlab\specfun - Specialized math functions.

matlab\matfun - Matrix functions - numerical linear algebra.

matlab\datafun - Data analysis and Fourier transforms.

matlab\polyfun - Interpolation and polynomials.

matlab\funfun - Function functions and ODE solvers.

matlab\sparfun - Sparse matrices.

matlab\scribe - Annotation and Plot Editing.

matlab\graph2d - Two dimensional graphs.

matlab\graph3d - Three dimensional graphs.

matlab\specgraph - Specialized graphs.

matlab\graphics - Handle Graphics.

…etc...

Intro MATLAB

20

Command-Line Help : List of Topic Functions

>> help matfun

Matrix functions - numerical linear algebra.

Matrix analysis.

norm - Matrix or vector norm.

normest - Estimate the matrix 2-norm.

rank - Matrix rank.

det - Determinant.

trace - Sum of diagonal elements.

null - Null space.

orth - Orthogonalization.

rref - Reduced row echelon form.

subspace - Angle between two subspaces.

…

Intro MATLAB

21

Command-Line Help : Function Help

>> help det

DET Determinant.

DET(X) is the determinant of the square matrix X.

singularity.

name in other directories)

help laurmat/det.m

doc det

Intro MATLAB

22

Keyword Search of Help Entries

>> lookfor who

newton.m: % inputs: 'x' is the number whose

square root we seek

testNewton.m: % inputs: 'x' is the number whose

square root we seek

WHO List current variables.

WHOS List current variables, long form.

TIMESTWO S-function whose output is two times its

input.

>> whos

Name Size Bytes Class Attributes

ans 1x1 8 double

fid 1x1 8 double

i 1x1 8 double

Intro MATLAB

23

startup.m

Customize MATLAB’s start-up behavior

Create startup.m file and place in:

Windows: $matlabroot\work

My startup.m file:

addpath e:\download\MatlabMPI\src

addpath e:\download\MatlabMPI\examples

addpath .\MatMPI

format short g

eliminates extra blank lines in output

format compact

Intro MATLAB

24

Variables (Arrays) and

Operators

25

Variable Basics

>> 16 + 24 no declarations needed

ans =

40

product =

371.84

the calculation’s result

>> product

product =

8883.8

Intro MATLAB

26

Variable Basics

>> clear clear removes all variables;

>> product = 2 * 3^3;

>> comp_sum = (2 + 3i) + (2 - 3i); clear x y removes only x and y

>> show_i = i^2;

>> save three_things complex numbers (i or j) require

>> clear no special handling

>> load three_things

>> who

Your variables are: save/load are used to

comp_sum product show_i retain/restore workspace variables

>> product

product =

54

>> show_i

use home to clear screen and put

show_i = cursor at the top of the screen

-1

Intro MATLAB

27

MATLAB Data

•

The basic data type used in MATLAB is the double precision array

of an assignment statement

o Use File/Preferences and/or format function to change default

o short (5 digits), long (16 digits)

o format short g; format compact (my preference)

Intro MATLAB

28

Variables Revisited

Variable names are case sensitive and over-written when re-used

Vectorization: Always use array operands to get best performance (see next slide)

varargin, varargout, ...

Commands who (terse output) and whos (verbose output) show variables in Workspace

Intro MATLAB

29

Vectorization Example*

tic; tic;

x=0.1; x=0.1:0.001:200;

for k=1:199901 y=besselj(3,x) + log(x);

y(k)=besselj(3,x) + toc;

log(x); >> fast

x=x+0.001; Elapsed time is 0.551970

end seconds.

toc;

>> slow Roughly 31 times faster

Elapsed time is 17.092999

seconds. without use of for loop

*times measured on a laptop

Intro MATLAB

30

Matrices: Magic Squares

“magic square”

Interestingly,

Durer also dated

this engraving by

placing 15 and 14

side-by-side in

the magic square.

Intro MATLAB

31

Durer’s Matrix: Creation

8];

» durer3row = [9 6 7 12];

» durer4row = [4 15 14 1];

» durerBy4 =

[durer1N2row;durer3row;durer4row];

» durerBy4

durerBy4 =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Intro MATLAB

32

Easier Way...

durerBy4 =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

durerBy4r2 =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Intro MATLAB

33

Multidimensional Arrays

>> r = randn(2,3,4) % create a 3 dimensional array filled with

normally distributed random numbers

r(:,:,1) =

“%” sign precedes comments, MATLAB

-0.6918 1.2540 -1.4410 ignores the rest of the line

0.8580 -1.5937 0.5711

r(:,:,2) = randn(2,3,4): 3 dimensions, filled with

-0.3999 0.8156 1.2902 normally distributed random numbers

0.6900 0.7119 0.6686

r(:,:,3) =

1.1908 -0.0198 -1.6041

-1.2025 -0.1567 0.2573

r(:,:,4) =

-1.0565 -0.8051 0.2193

1.4151 0.5287 -0.9219

Intro MATLAB

34

Character Strings

>> class = 'MATLAB';

>> hi

hi =

hello

>> class

class =

MATLAB concatenation with blank or with “,”

>> greetings = [hi class]

greetings =

helloMATLAB semi-colon: join vertically

>> vgreetings = [hi;class]

vgreetings =

hello

MATLAB

Intro MATLAB

35

Character Strings as Arrays

>> greetings

greetings =

helloMATLAB

>> vgreetings = [hi;class]

vgreetings =

hello

MATLAB

>> hi = 'hello' note deleted space at

beginning of word;

hi = results in error

hello

>> vgreetings = [hi;class]

??? Error using ==> vertcat

CAT arguments dimensions are not consistent.

Intro MATLAB

36

String Functions

yo =

Hello

Class

>> ischar(yo)

ans =

returns 1 if argument is a character

1 array and 0 otherwise

>> strcmp(yo,yo)

ans =

1

returns 1 if string arguments are the

same and 0 otherwise; strcmpi ignores case

Intro MATLAB

37

Set Functions

Arrays are ordered sets:

>> a = [1 2 3 4 5]

a =

1 2 3 4 5

>> b = [3 4 5 6 7]

b =

3 4 5 6 7

returns true (1) if arrays are the same

>> isequal(a,b) size and have the same values

ans =

0

returns 1 where a is in b

>> ismember(a,b) and 0 otherwise

ans =

0 0 1 1 1

Intro MATLAB

38

Matrix Operations

magic(N) (N > 2)

16 3 2 13

5 10 11 8 function

9 6 7 12

4 15 14 1

>> % and main diagonals sum to the same number

>> column_sum = sum(durer) % MATLAB operates column-wise

column_sum =

34 34 34 34

Intro MATLAB

39

Transpose Operator

>> % to get the row sums, we'll use the transpose operator

>> % (an apostrophe)

>> durer'

ans =

16 5 9 4

3 10 6 15

2 11 7 14

13 8 12 1

row_sums =

34

34

34

34

Intro MATLAB

40

Diagonal Elements

>> durer

durer =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

ans =

16

10

7

1

>> sum(diag(durer))

ans =

34

Intro MATLAB

41

The Other Diagonal…

>> durer

durer =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

ans =

13 2 3 16

8 11 10 5

12 7 6 9

1 14 15 4

>> sum(diag(fliplr(durer)))

ans =

34

Intro MATLAB

42

Matrix Subscripting

>> durer

durer =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

diag_sum =

33

>> durer(4,4) = pi

durer =

16.0000 3.0000 2.0000 13.0000

5.0000 10.0000 11.0000 8.0000

9.0000 6.0000 7.0000 12.0000

4.0000 15.0000 14.0000 3.1416

>> durer(4,4) = 1

Intro MATLAB

43

Colon Operator (Vector Creation)

ans =

1 2 3 4 5

>> 1:0.9:6 % you can vary the increment (0.9 in this case)

ans =

1.0000 1.9000 2.8000 3.7000 4.6000 5.5000

limit

Intro MATLAB

44

Colon Operator (Indexing)

>> sum(durer(1:3,4)) % sums first three

% elements of column 4

ans =

33

% elements, end is

% the last element

ans =

34

Intro MATLAB

45

The “Dot Operator”

By default and whenever possible MATLAB will

perform true matrix operations (+ - *). The operands

in every arithmetic expression are considered to be

matrices.

If, on the other hand, the user wants the scalar

version of an operation a “dot” must be put in front of

the operator, e.g., .*. Matrices can still be the

operands but the mathematical calculations will be

performed element-by-element.

A comparison of matrix multiplication and scalar

multiplication is shown on the next slide.

Intro MATLAB

46

Dot Operator Example

>> A = [1 5 6; 11 9 8; 2 34 78]

A =

1 5 6

11 9 8

2 34 78

>> B = [16 4 23; 8 123 86; 67 259 5]

B =

16 4 23

8 123 86

67 259 5

Intro MATLAB

47

Dot Operator Example (cont.)

>> C = A * B % “normal” matrix multiply

C =

458 2173 483

784 3223 1067

5530 24392 3360

CDOT =

16 20 138

88 1107 688

134 8806 390

Intro MATLAB

48

Two Division Operators

Right divide (familiar version) a/b

Left divide a\b

Both operators work with matrices (of course). More later on what is actually

calculated …

Comparison of the use of / and \ on next slide

Intro MATLAB

49

Using the Division Operators

>> x = 53.0;

>> y = 22.5;

>> x/y

ans = 2.3556

>> x\y

For matrix operands, A\B is the solution to

Ax = B obtained by Gaussian elimination.

ans = 0.4245

in “MATLAB Function Reference”:

ans = 0.4245 Help Search for: division

Intro MATLAB

50

Easy 2-D Graphics

>> x = [0: pi/100: pi]; % [start: increment: end]

>> y = sin(x);

>> plot(x,y), title('Simple Plot')

Intro MATLAB

51

Adding Another Curve

>> z = cos(x);

>> plot(x,y,'g.',x,z,'b-.'),title('More complicated')

all within single quotes; type

>> doc LineSpec

for all available line properties

Intro MATLAB

52

Lab 1

Create a row vector called X whose elements are the integers 1 through 9.

Create another row vector called Temp whose elements are:

15.6 17.5 36.6 43.8 58.2 61.6 64.2 70.4 98.8

These data are the result of an experiment on heat conduction through an iron bar. The array X contains

positions on the bar where temperature measurements were made. The array Temp contains the

corresponding temperatures.

Make a 2-D plot with temperature on the y-axis and position on the x-axis.

The data shown in your plot should lie along a straight line (according to physics) but don’t because of

measurement errors. Use the MATLAB polyfit function to fit the best line to the data (use >> hold

on; for multiple plots in same figure). In other words use polyfit to determine the coefficients a and

b of the equation

T = ax + b

Lastly, we can calculate a parameter called chi-square (χ2) that is a measure of how well the data fits the

line. Calculate chi-square by running the MATLAB command that does the following matrix

multiplication:

>> (Temp-b-a*X)*(Temp-b-a*X)'

Intro MATLAB

53

Lab 2

Write a MATLAB command that will generate a column vector called theta.

theta should have values from –2π to 2π in steps of π/100.

Generate a matrix F that contains values of the following functions in the columns

indicated:

Column 1: cos(θ)

Column 2: cos(2θ)(1 + sin(θ2)

Column 3: e -0.1|θ|

Evaluate each of the above functions for the θ values in the theta vector from

above.

Plot each of the columns of F against theta. Overlay the three plots, using a

different color for each.

Create a new column vector called maxVect that contains the largest of the three

functions above for each theta. Plot maxVect against theta.

Create a column vector called maxIndex that has the column number of the

maximum value in that row.

Intro MATLAB

54

Programming

55

Outline

– To start: click icon or enter edit command in

Command Window, e.g., >> edit test.m

• Scripts and Functions

• Decision Making/Looping

– if/else

– switch

– for and while

• Running Operating System Commands

Intro MATLAB

56

m-file Editor Window

file/function/script in one

step by clicking here

colons) allow multiple commands on one line, and 3 dots

(…) allow continuation of lines without execution

Intro MATLAB

57

Scripts and Functions

produce output arguments. Scripts are simply MATLAB

commands written into a file. They operate on the existing

workspace.

Functions accept input arguments and produce output

variables. All internal variables are local to the function

and commands operate on the function workspace.

A file containing a script or function is called an m-file

If duplicate functions (names) exist, the first in the search

path (from path command) is executed.

Intro MATLAB

58

Functions – First Example

function [a b c] = myfun(x, y) Write these two lines to a file myfun.m

b = x * y; a = 100; c = x.^2; and save it on MATLAB’s path

ans =

100

>> u = myfun(2,3) % called with one output

u =

100

>> [u v w] = myfun(2,3) % called with all outputs

u =

100

v = Any return value which is not stored in

6 an output variable is simply discarded

w =

4

Intro MATLAB

59

Example: deLaunay Triangulation

Have a set of random (x,y) points and want to connect them together to make a

triangular grid

The deLaunay algorithm creates a set of triangles such that no (other) data points are

contained within the area or perimeter of any given triangle.

specifications, …

Intro MATLAB

60

Interactive Session

>> x = randn(1,12); % generates 12 normally distributed numbers

>> y = randn(1,12);

>> plot(x,y,'o');

Intro MATLAB

61

MATLAB script: mydelaunay.m

% deLaunay triangulation

% ----------------------

% You must have variables x, y, and z instanced

% in the workspace

plot(x,y,'o');

tri = delaunay(x,y);

hold on, trimesh(tri,x,y,z), hold off; % plot triangles

hidden off % reveal all hidden points!

title(‘deLaunay triangulation')

Intro MATLAB

62

Using the mydelaunay script

>> x = randn(1,12); % generates 12 normally distributed numbers

>> y = randn(1,12);

>> mydelaunay

Intro MATLAB

63

Function: Header/Help Comments

function angles = ortho(a,b,c)

%ortho function input: Three vectors each with 3 elements

% The output is a 3-element array containing the

% angles between each pair of input vectors. The

% output elements are respectively:

% angle between a and b H1 (help 1) line displayed

% angle between b and c when using lookfor

% angle between a and c

% Typical use or ortho is to determine if a,b,c form an

% orthogonal basis set that spans 3-D space.

All initial comment lines are displayed when help is used on a function

NOTE: This function should be saved in a file named ortho.m

Intro MATLAB

64

Function: Body

anorm = norm(a); % Local Variables

bnorm = norm(b); % Calculate vector lengths

cnorm = norm(c);

ab = dot(a,b); % Calculate Dot Products

bc = dot(b,c);

ac = dot(a,c);

cosy_ab = ab/(anorm*bnorm); % Calculate cosine of

cosy_bc = bc/(bnorm*cnorm); % included angles

cosy_ac = ac/(anorm*cnorm);

angles(1) = convert2deg(acos(cosy_ab)); % Create output

angles(2) = convert2deg(acos(cosy_bc));

angles(3) = convert2deg(acos(cosy_ac));

return

Intro MATLAB

65

Using Your ortho Function

>> a = [1 2 3];

>> b = [4 5 6];

>> c = [7 8 9];

>> ortho(a,b,c)

ans =

12.9332 3.4470 16.3801

>> a = [22 0 0];

>> b = [0 5 0];

>> c = [0 0 13];

>> ortho(a,b,c)

ans =

90 90 90

Intro MATLAB

66

Getting ortho Function Help

>> help ortho

ortho function input: Three vectors each with 3 elements

The output is a 3-element array containing the angles

between each pair of input vectors. The output

elements are respectively:

angle between a and b

angle between b and c

angle between a and c

Typical use or ortho is to determine if a,b,c form an

orthogonal basis set that spans 3-D space.

SIN Sine.

SIN(X) is the sine of the elements of X.

Intro MATLAB

67

Function Syntax Summary

If the m-file name and function name differ, the file name takes precedence

First line must contain function followed by the most general calling syntax

Statements after initial contiguous comments (help lines) are the body of the

function

Intro MATLAB

68

Function Syntax Summary (cont.)

error and warning can be used to test and continue execution

(error-handling)

workspace

C:\MATLAB71\toolbox\matlab\graph2d\title

Intro MATLAB

69

Variable Argument Lists

input / output function arguments

Intro MATLAB

70

Variable Argument Lists (cont.)

Consider the following function m-file:

plot(x, varargin{:})

All input arguments beginning with the second one are collected

into the variable varargin so the function call:

myplot(x.^2,'color',[.5 .7 .3],'linestyle',‘o’)

results in varargin being a 1-by-4 cell array with the values ‘color’, [.5 .

7 .3], ‘linestyle’ and ‘o’

Intro MATLAB

71

Variable Argument Lists (cont.)

Consider the m-file:

function [s, varargout] = mysize(x)

nargout: number of output

nout = max(nargout,1) - 1;

arguments in function call

s = size(x);

for k = 1:nout, varargout(k) = {s(k)}; end

The following

>> [s,rows,cols] = mysize(rand(4,5))

returns

pack all output values

s = [4 5], rows = 4, cols = 5

into varargout cell array

Intro MATLAB

72

if/elseif/else Statement

>> A = 2; B = 3;

>> if A > B

'A is bigger'

elseif A < B

'B is bigger'

elseif A == B

'A equals B'

else

error('Something odd is happening')

end

ans =

B is bigger

Intro MATLAB

73

switch Statement

>> n = 8

n =

8

>> switch(rem(n,3))

case 0

m = 'no remainder'

case 1

m = ‘the remainder is one'

case 2

m = ‘the remainder is two'

otherwise

error('not possible')

end

m =

the remainder is two

Intro MATLAB

74

for Loop

>> for i = 2:5

for j = 3:6

a(i,j) = (i + j)^2

end

end

>> a

a =

0 0 0 0 0 0

0 0 25 36 49 64

0 0 36 49 64 81

0 0 49 64 81 100

0 0 64 81 100 121

Intro MATLAB

75

while Loop

>> while b - a > 0.01

a = a + 0.001;

count = count + 1;

end

>> count

count =

1891

Intro MATLAB

76

A Performance Tip

Input variables are not copied into the function

workspace, unless

copied

extracting only those elements that will need modification

Intro MATLAB

77

MATLAB’s Search Path

• Is name a variable?

• Is name a built-in function?

• Does name exist in the current directory?

• Does name exist anywhere in the search path?

• “Discovery functions”: who, whos, what, which,

exist, help, doc, lookfor, dir, ls, ...

Intro MATLAB

78

Changing the Search Path

The addpath command adds directories to the MATLAB search

path. The specified directories are added to the beginning of the

search path.

>> matlabpath

MATLABPATH

MATLABPATH

E:\MATLAB\R2006b\work c:\

E:\MATLAB\R2006b\work\f_funcs E:\MATLAB\R2006b\work

E:\MATLAB\R2006b\work\na_funcs E:\MATLAB\R2006b\work\f_funcs

E:\MATLAB\R2006b\work\na_scripts E:\MATLAB\R2006b\work\na_funcs

E:\MATLAB\R2006b\work\na_scripts

E:\MATLAB\R2006b\toolbox\matlab\general E:\MATLAB\R2006b\toolbox\matlab\general

E:\MATLAB\R2006b\toolbox\matlab\ops E:\MATLAB\R2006b\toolbox\matlab\ops

Intro MATLAB

79

Common OS Commands

• ls / dir provide a directory listing of the current directory

>> ls

. .. sample.m

>>

>> pwd

ans =

e:\Program Files\MATLAB\R2006b\work

>>

Intro MATLAB

80

Running OS Commands

The system command can be used to run OS commands

On Unix systems, the unix command can be used as well

On DOS systems, the corresponding command is dos

>> dos('date')

The current date is: Thu 01/04/2007

Enter the new date: (mm-dd-yy)

ans =

0

Intro MATLAB

81

Lab 1

Create, perhaps using for-loops, a synthetic “image” that has a

1 in the (1,1) location, and a 255 in the (128,128) location,

and i + j - 1 in the i, j location. This we'll refer to as

the ”diagonal gray'' image. Can you manage to do this without

using for-loops?

Display the image using (we’ll assume you placed your image in

a matrix named a) image(a); colormap(gray). (Don’t

worry if this doesn’t work exactly the way you expect.

Colormaps can be tricky!)

Now convert your code to a MATLAB script

Test your script to insure that it produces the same results as the

ones obtained interactively.

Intro MATLAB

82

Lab 2

Write a MATLAB function that implements Newton’s iterative algorithm for

approximating the square root of a number.

The core of Newton’s algorithm is that if last is the last approximation calculated, the

next (improved) approximation is given by

next = 0.5(last +(x/last))

where x is the number whose square root you seek.

Two other pieces of information are needed to implement the algorithm. The first is an initial

guess at the square root. (A typical starting value might be 1.0, say). The second is the

accuracy required for the approximation. You might specify you want to keep iterating

until you get an approximation that is good to 5 decimal places for example.

Your MATLAB function should have three input arguments: x, the initial guess, and the

accuracy desired. It should have one output, the approximate square root of x

to the desired accuracy.

Intro MATLAB

83

Data I/O

84

Loading and Saving Workspace

Variables

MATLAB can load and save data in .MAT format

• .MAT files are binary files that can be transferred across platforms; as

much accuracy as possible is preserved.

loads all the variables in the specified file (the default name is

MATLAB.MAT)

saves the specified variables (all variables by default) in the specified

file (the default name is MATLAB.MAT)

Intro MATLAB

85

ASCII File Read/Write

load and save can also read and write ASCII files with

rows of space separated values:

(options are ascii, double, tabs, append)

Intro MATLAB

86

ASCII File Read/Write (cont.)

• dlmread

M = dlmread(filename,delimiter,range);

reads ASCII values in file filename that are separated by delimiter into

variable M; most useful for numerical values. The last value in a line need not

have the delimiter following it.

range = [R1 C1 R2 C2] (upper-left to lower-right corner)

• dlmwrite

dlmwrite(filename,A,delimiter);

writes ASCII values in array A to file filename with values separated by

delimiter

Intro MATLAB

87

More ASCII File Read

• textread

[A, B, C, ...] = textread[‘filename’, ‘format’];

[A, B, C, ...] = textread[‘filename’, ‘format’, N];

[...] = textread[..., ‘param’, ‘value’, ...];

The type of each return argument is given by format (C-style conversion specifiers: %d,

%f, %c, %s, etc…)

Number of return arguments must match number of conversion specifiers in format

• format string is reused N times or entire file is read if N not given

Using textread you can

Intro MATLAB

88

textread Example

• Data file,

tab delimited:

• MATLAB

m-file: ‘param’,’value’ pairs

use doc textread for

available param options

• Results:

Intro MATLAB

89

Import Wizard

Import ASCII and binary files using the Import Wizard. Type uiimport at

the Command line or choose Import Data from the File menu.

Intro MATLAB

90

Low-Level File I/O Functions

• File Opening and Closing

– fclose: Close one or more open files

– fopen: Open a file or obtain information about open files

• Unformatted I/O

– fread: Read binary data from file

– fwrite: Write binary data to a file

• Formatted I/O

– fgetl: Return the next line of a file as a string without line

terminator(s)

– fgets: Return the next line of a file as a string with line

terminator(s)

– fprintf: Write formatted data to file

– fscanf: Read formatted data from file

Intro MATLAB

91

Low-Level File I/O (cont.)

File Positioning

– feof: Test for end-of-file

– ferror: Query MATLAB about errors in file input or output

– frewind: Rewind an open file

– fseek: Set file position indicator

– ftell: Get file position indicator

String Conversion

– sprintf: Write formatted data to a string

– sscanf: Read string under format control

Intro MATLAB

92

File Open (fopen)/Close (fclose)

• fid = fopen(‘filename’, ‘permission’);

Permission

File Name of requested:

identifier file ‘r’, ’r+’

number ‘w’, ’w+’

‘a’, ’a+’

• status = fclose(fid);

-1, otherwise or ‘all’ for all files

Intro MATLAB

93

Formatted I/O

• fscanf: [A, count] = fscanf(fid,format,size);

Data successfully identifier specifier data to read:

array read number n, [n, m], Inf

• fprintf: count = fprintf(fid, format, A,...);

successfully identifier Data

specifier

read number array(s) to

write

Intro MATLAB

94

Format String Specification

%-12.5e

initial % alignment flag conversion

character specifier

width and Specifier Description

precision %c Single character

%d Decimal notation (signed)

%e Exponential notation

%f Fixed-point notation

%g The more compact of %e or %f

%o Octal notation (unsigned)

%s String of characters

%u Decimal notation (unsigned)

%x Hexadecimal notation

...others...

Intro MATLAB

95

Other Formatted I/O Commands

• fgetl: line = fgetl(fid);

reads next line from file without line terminator

reads next line from file with line terminator

reads N lines of formatted text from file filename

reads string under format control

writes formatted data to a string

Intro MATLAB

96

Binary File I/O

• [data, count] = fread(fid, num, precision);

array successfully identifier n, [n, m],...

read number

successfully identifier write ‘int’, ‘double’, …

written number

Intro MATLAB

97

File Position Commands

• feof: tf = feof(fid);

tests for end of file

• fseek: status = fseek(fid, offset, origin);

sets the file position

• ftell: position = ftell(fid);

gets the file position

• frewind: frewind(fid);

• ferror: message = ferror(fid);

inquire about file I/O status

Intro MATLAB

98

File I/O Example

Data file MATLAB m-file to read it

fid = fopen('asciiData.txt','r');

i = 1;

while ~feof(fid)

name(i,:) = fscanf(fid,'%5c',1);

year(i) = fscanf(fid,'%d',1);

no1(i) = fscanf(fid,'%d',1);

no2(i)=fscanf(fid,'%d',1);

no3(i)=fscanf(fid,'%g',1);

no4(i)=fscanf(fid,'%g\n');

i=i+1;

end

fclose(fid);

MATLAB output

Since a tab counts as one character in MATLAB,

you must use spaces after the name field in the

data file (else get “Tom 1” in name output, etc...)

Intro MATLAB

99

File I/O Example (Alternative)

Cell arrays (storage mechanism for dissimilar kinds of

data) offer a very flexible alternative

Avoid the nuances and pitfalls of counting spaces and tabs

Create a cell array to store the field name by using curly

braces after variable name:

constructors be used here with cell array

Intro MATLAB

100

Specialized File I/O Commands

• imfinfo: Return information about a graphics file

• imread/imwrite: Read/Write image from graphics file

• wk1read/wk1write: Read/Write a Lotus123 WK1 spreadsheet

file into a matrix

• xlsread/xlswrite: Read/Write a matrix to a Excel

spreadsheet file

• urlread: read data from a URL

Intro MATLAB

101

uigetfile: Interactively Get a Filename

uigetfile(‘Filterspec’, ‘DialogTitle’);

Example:

>> f = uigetfile('*.jpg;*.bmp;*.gif;*.tif','Specify Graphics File:')

Intro MATLAB

102

Structures

• Multidimensional MATLAB arrays

• Access elements using textual field designators

• Create structures by using periods (.):

>> class.name = ‘MATLAB’;

>> class.day1 = ‘2/27/07’;

>> class.day2 = ‘2/28/07’;

>> class

class =

name: ‘MATLAB’

day1: ‘2/27/07’

day2: ‘2/28/07’

Intro MATLAB

103

Manipulating Structures

• Structures are arrays (no surprise)

• Fields can be added one at a time:

>> class(2).day1 = ‘TBA’;

>> class(2).day2 = ‘TBA’;

‘day1’,‘TBA’,‘day2’,‘TBA’)

Intro MATLAB

104

Manipulating Structures (cont.)

• Consider the simple structure

>> exam.score = 79;

>> exam(2).name = ‘Janice Lester’;

>> exam(2).score = 89;

>> [exam.score]

ans =

79 89 square brackets produce a

numeric row vector

Intro MATLAB

105

Manipulating Structures (cont.)

Can also create a cell array using curly braces:

>> {exam.name}

ans =

'Jim Kirk' 'Janice Lester'

Intro MATLAB

106

Lab 1

The data file DataIO_lab1.dat is a binary data file containing a 256 X 256 image. The data is

stored in row order with each pixel value being a double value.

Read the data in DataIO_lab1.dat into a 256 X 256 real array, and display it as a gray scale

image. Here are some suggestions to help you:

Use the function fopen to open the file and get a file handle.

Since the data is binary, use the function fread to read the data; if you want you can read it 256 values at a time.

To display the data array as an image, use the MATLAB command image

If the resulting image is rotated, you can use the transpose operator to take care of that.

Scale the array so that all pixel values are between 1 and 64

What are you looking at? (FUN: experiment with non-gray colormaps …)

Intro MATLAB

107

Lab 2

The data file DataIO_lab2.csv is an ASCII data file that consists of comma separated

real values. There are 3000 rows and 16 columns of data. The first column corresponds

to sampling instants and the next 15 columns correspond to vibration data collected from

a shaker table.

Write a short m-file to read the data in the DataIO_lab2.csv file and assign it to two

variables: t which is a 3000 X 1 array containing the sampling instants and x which is a

3000 X 15 array containing the data on all the channels. You can use fscanf (in

conjunction with fopen) or dlmread to read the data.

MATLAB provides another way of reading ASCII data files: textread. Use textread

to read the data in DataIO_lab2.csv and assign it to the variables t and x.

Intro MATLAB

108

Basic Data Analysis

109

Basic Data Analysis

easily accomplished in MATLAB.

vectors are columnar.

observation.

Intro MATLAB

110

Vibration Sensors Data

raw rpm sensor

data from a

different sensor

used in an

instrumented

engine test. The

rows represent the

times readings

were made.

Intro MATLAB

111

Plotting the Data

>> plot(rpm_raw)

>> xlabel('sample number - during time slice');

>> ylabel('Unfiltered RPM Data');

>> title(‘3 sequences of samples from RPM sensor’)

case the plot

command

generates one

time-series for

each column of

the data matrix

Intro MATLAB

112

Average of the Data:

1

Applying the mean function >> mean(rpm_raw)

to the data matrix yields the

mean of each column ans =

1081.4 1082.8 1002.7

2

But you can easily compute the >> mean(mean(rpm_raw))

mean of the entire matrix

(applying a function to either a

single row or a single column ans =

results in the function applied 1055.6

to the column, or the row, i.e.,

in both cases, the application is

to the vector).

Intro MATLAB

113

The mean Function

>> help mean

MEAN Average or mean value.

For vectors, MEAN(X) is the mean value of the elements in X. For

matrices, MEAN(X) is a row vector containing the mean value of

each column. For N-D arrays, MEAN(X) is the mean value of the

elements along the first non-singleton dimension of X.

3 4 5] along any dimension

4]

>> mean(rpm_raw, 2)

ans =

1045.7

3

1064.7 So we can easily obtain the row

1060.7 means

1055

1045

Intro MATLAB

114

max and its Index

1 MAX Largest component. 2

For vectors, MAX(X) is the largest

element in X. For matrices, MAX(X) >> max(rpm_raw)

is a row vector containing the ans =

maximum element from each column. 1115 1120 1043

For N-D arrays, MAX(X) operates along

the first non-singleton dimension.

>> max(max(rpm_raw))

[Y,I] = MAX(X) returns the indices of ans =

the maximum values in vector I. 1120

If the values along the first non-

singleton dimension contain more

than one maximal element, the index

>> [y,i] = max(rpm_raw)

of the first one is returned. y =

1115 1120 1043

We can compute the max i =

of the entire matrix, or of 8 2 17

any dimension max along the columns

Intro MATLAB

115

min

>> min(rpm_raw) min along each column

ans =

1053 1053 961

ans =

961

y =

1053 1053 961

i =

22 1 22

Intro MATLAB

116

Standard Deviation, Median, Covariance

>> median(rpm_raw) % median along each column

ans =

1080 1083.5 1004

>> cov(rpm_raw) % covariance of the data

ans =

306.4 -34.76 32.192

-34.76 244.9 -165.21

32.192 -165.21 356.25

>> std(rpm_raw) % standard deviation along each column

ans =

17.504 15.649 18.875

>> var(rpm_raw) % variance is the square of std

ans =

306.4 244.9 356.25

Intro MATLAB

117

Data Analysis: Histogram

HIST Histogram.

N = HIST(Y) bins the elements of Y into 10 equally spaced containers

and returns the number of elements in each container. If Y is a

matrix, HIST works down the columns.

among bins with centers specified by X. The first bin includes

data between -inf and the first center and the last bin

includes data between the last bin and inf. Note: Use HISTC if

it is more natural to specify bin edges instead.

...

Intro MATLAB

118

Histogram (cont.)

>> hist(rpm_raw) %histogram of the data

Intro MATLAB

119

Histogram (cont.)

>> hist(rpm_raw, 20) %histogram of the data

Intro MATLAB

120

Histogram (cont.)

>> hist(rpm_raw, 100) %histogram of the data

Intro MATLAB

121

Data Analysis: Sorting

>> help sort

SORT Sort in ascending or descending order.

For vectors, SORT(X) sorts the elements of X in ascending order.

For matrices, SORT(X) sorts each column of X in ascending order. 1

For N-D arrays, SORT(X) sorts the along the first non-singleton

dimension of X. When X is a cell array of strings, SORT(X) sorts

the strings in ASCII dictionary order.

Y = SORT(X,DIM,MODE)

has two optional parameters.

2

DIM selects a dimension along which to sort.

MODE selects the direction of the sort

'ascend' results in ascending order

'descend' results in descending order

The result is in Y which has the same shape and type as X.

If X is a vector, then Y = X(I). 3

If X is an m-by-n matrix and DIM=1, then

for j = 1:n, Y(:,j) = X(I(:,j),j); end

Intro MATLAB

122

Sorting Data (cont.)

>> magic(4)

ans =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> sort(magic(4))

1

ans =

4 2 3 1

5 7 6 8

9 11 10 12

16 14 15 13

Intro MATLAB

123

Sorting Data (cont.)

>> magic(4) >> sort(magic(4),2)

ans = ans =

16 2 3 13 2 3 13 16

5 11 10 8 5 8 10 11

9 7 6 12 6 7 9 12

4 14 15 1 1 4 14 15

2

>> sort(magic(4),1)

ans =

4 2 3 1

5 7 6 8

9 11 10 12

16 14 15 13

Intro MATLAB

124

Sorting Data (cont.)

>> magic(4)

ans =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> [y i] = sort(magic(4)) 3

y = i =

4 2 3 1 4 1 1 4

5 7 6 8 2 3 3 2

9 11 10 12 3 2 2 3

16 14 15 13 1 4 4 1

Intro MATLAB

125

Bin Average Filtering

FILTER One-dimensional digital filter.

Y = FILTER(B,A,X) filters the data in vector X with the

filter described by vectors A and B to create the filtered

data Y. The filter is a "Direct Form II Transposed"

implementation of the standard difference equation:

- a(2)*y(n-1) - ... - a(na+1)*y(n-na)

ans = This example uses an

359 351 335.67 FIR filter to compute a

moving average using a

719 724.33 667 window size of 3

1088.3 1081.7 1001

1084 1091.7 1004.7

1081 1073 1006.7

Intro MATLAB

126

Filtered Data Plot

Intro MATLAB

127

Fast Fourier Transform (FFT)

transform of any arbitrary length sequence. fft

incorporates most known fast algorithms for various

lengths (e.g. power of 2)

Intro MATLAB

128

Discrete Fourier Transform Definition

N −1 j2 kn

X [ k ]= ∑ x [n]e N

n=0

N −1 j2 kn

1

x [n]=

N

∑

k =0

X [ k ]e N

Intro MATLAB

129

fft and fftshift

1 11

N=11

0 π 2π

After fftshift

N=11

-π 0 π

Intro MATLAB

130

Example: FFT of sine Wave in Noise

>> fs = 1000;

>> t = [0:999]*(1/fs);

>> x = sin(2*pi*250*t);

>> X = fft(x(1:512));

>> noise = 0.8*randn(size(x));

>> xn = x + noise;

>> XnMag = fftshift(20*log10(abs(fft(xn(1:512)))));

>> XnMagPf = XnMag(256:512);

>> frq = [0:length(XnMagPf) - 1]'*(fs/length(XnMag));

>> plot(frq, XnMagPf)

>> xlabel('freq. (Hz)');

>> ylabel('Mag. (db)');

Intro MATLAB

131

Frequency Spectrum

Intro MATLAB

132

Lab 1

Load the data_analysis_lab1.mat file into the MATLAB workspace. This will produce an

array variable called grades containing grades on an exam between 0 and 100.

Calculate the average and standard deviation of the grades.

Plot a histogram of the grades using 100 bins.

We want to compare the histogram with a Gaussian distribution.

Write you own MATLAB Gaussian function M-file which returns a value y using the following

formula

y=exp(-[x-m]2/2σ2)

where m is the average and σ is the standard deviation of the distribution. Your

function should have input arguments x,m, and σ.

On the histogram plot also plot a Gaussian distribution of the grades using the calculated

average and standard deviation.

Intro MATLAB

133

Lab 2

Load the file data_analysis_lab2.mat. Since this is a .mat file, you should be

able to load it easily using the load command.

Your workspace should now contain a single variable x. x is 3000 points long and

consists of the sum of 3 sine waves. The sampling frequency is 1000 Hz.

Plot the first 0.33 seconds of x. You may find it convenient to create a second array

(say called time) that has the time values corresponding to the samples in x.

>> Fs = 1000; %Sampling frequency

>> time = [0:length(x)-1]’*(1/Fs); % time index

• fft is a built-in function in MATLAB. We can compute and plot the magnitude of

the FFT of x to identify the frequencies of the sine waves.

>> X = fft(x);

• X is a complex valued array that is the FFT of x. We can compute the magnitude of

the FFT by taking the absolute value of X.

>> Xmag = abs(X);

>> plot(Xmag);

Intro MATLAB

134

Lab 2 (cont.)

The plot of Xmag shows 6 components, and also we have only index values

not real frequency values along the abscissa. Six components show up

because the FFT is evaluated over positive and negative frequencies. Also, the

frequencies are “wrapped around”. We can take care of the wrap around using

the fftshift function.

>> Xmag = fftshift(Xmag);

Next, we can generate a suitable frequency axis for plotting Xmag.

>> frq = [0:length(Xmag)-1]’*(Fs/length(Xmag)) –

(Fs/2);

>> plot(frq, Xmag);

Can you see the 3 frequency components (in the positive freq. part of the

axis)? Zoom into the plot either using the axis command or the interactive

zoom button on the figure’s toolbar and determine the frequencies of the 3

components.

Intro MATLAB

135

Numerical Analysis

136

Overview

IEEE double precision numbers

Numerical Linear Algebra

Condition number

Matrix factorizations

Solving ODE’s

Numerical integration

Root finding

Nonlinear optimization

Intro MATLAB

137

IEEE Double Precision Numbers

• Fundamental data type in MATLAB is a double precision value in

ANSI/IEEE Standard 754 format:

s

A numeric value is represented as: (-1)s (1.f) 2 (E-1023)

• Roundoff: eps = 2-52 ≈ 10-16

Intro MATLAB

138

Solving Linear Equations

• A is an n x m matrix, x is an m x 1 vector and b is

an n x 1 vector

rows (or columns). Rank can be checked using the

MATLAB command rank

• Equations are

• consistent if rank(A) = rank([A b]) Existence

of solution

• independent if rank(A) = n Uniqueness

of solution

Intro MATLAB

139

Linear Equations, n = m

>> A = [1 2 3; 4 5 6; 7 8 0]

When A is square (i.e., A =

1 2 3

n = m) and the equations 4 5 6

are independent and 7 8 0

>> b = [366; 804; 351]

consistent, the unique b =

solution can be found using 366

the \ operator. 804

351

>> [rank(A) rank([A b])]

ans =

MATLAB finds the solution 3 3

>> x = A\b

using a LU decomposition of x =

A. 25

22

99

Intro MATLAB

140

Linear Equations, n < m

When the number of >> A = [2 3 4; 1 1 1]; b = [4;5];

>> x = A\b

equations is less than the x =

number of unknowns (i.e., 8

n < m), usually an infinite 0

-3

number of solutions exist. >> x1 = pinv(A)*b

x1 =

• \ finds the solution with 7.1667

no more than rank(A) 1.6667

-3.8333

non-zero elements. >> sqrt([sum(x.^2) sum(x1.^2)])

ans =

• pinv can be used to find 8.544 8.2966

the solution with min ||x||.

Intro MATLAB

141

Example: Force Required to Move Object

Force, F

Intro MATLAB

142

Example (cont.)

A x=b

A=

19/ 2 17/1 15/2 ⋯ 1/2

1 1 1 ⋯ 1

x= x 1 ⋯ x 10 , b= 1

T

0

Intro MATLAB

143

Example (cont.)

x1 = * b ans =

0.11111 x2 = 0.15713 0.1101

0 0.054545

0 0.042424

0 0.030303

0 0.018182

0 0.0060606

0 -0.0060606

0 -0.018182

0 -0.030303

-0.11111 -0.042424

-0.054545

Intro MATLAB

144

Linear Equations, n > m

equations than unknowns >> b = [2; 5; -5];

(i.e., n > m), >> [rank(A) rank([A b])]

usually no solution exists.

ans =

• \ can be used to find 2 3

the least squares

solution, i.e., the x that >> x = A\b

minimizes ||Ax-b||2 x =

-0.094595

2.4459

Intro MATLAB

145

Example: Fit Polynomial to Data

Assume we can model data as

p

y=a0 a1 x⋯a p x e

Assume e is measurement noise, and that we have n

measurements of x and y. This leads to an overdetermined

set of equations:

p

1 x1 ⋯ x a0 y1 1

⋮ ⋮ ⋮ ⋮ = ⋮

p

1 xn ⋯ xn a p yn

Intro MATLAB

146

Example (cont.)

Intro MATLAB

147

Condition of a Matrix

Consider Ax = b. If A changes by >> A = [1 1; 1 1.01]

a small amount δΑ, how large is >> b = [2; 2.01];

>> x = A\b

the change in the solution δx? x =

||δx||/||x|| < κ(A) ||δA||/||A|| 1

1

κ(A) is the condition number >> A1 = [1 1.005; 1 1.01];

of A >> x1 = A1\b

x1 =

κ(Α) is calculated using the -0.01

MATLAB command cond(A) 2

>> cond(A)

Consider A essentially singular if ans =

κ(Α) > 1/eps 402.01

Intro MATLAB

148

Matrix Factorizations: lu

1];

matrix A into the product >> [L, U] = lu(A)

of a permuted lower L =

1 0 0

triangular matrix L and 1 -0.5 1

an upper triangular -1 1 0

matrix U such that A = U =

1 2 -1

LU. 0 4 0

0 0 2

Useful in computing >> L * U

inverses, Gaussian ans =

elimination. 1 2 -1

1 0 1

-1 2 1

Intro MATLAB

149

Matrix Factorizations: chol

chol: factors a >> A = [2 -1; 1 1; 6 -1];

symmetric, positive >> B = A'*A

B =

definite matrix A as

41 -7

RTR, where R is upper -7 3

triangular. >> R = chol(B)

R =

6.4031 -1.0932

Useful in solving least 0 1.3435

>> R'*R

squares problems.

ans =

41 -7

-7 3

Intro MATLAB

150

Eigenvalues and Eigenvectors: eig

eig: computes the >> A = [1 -1 0; 0 1 1; 0 0 -2];

eigenvalues, λi and >> [V, D] = eig(A)

eigenvectors, ξi of a square V =

matrix A.. 1 1 -0.10483

0 0 -0.31449

0 0 0.94346

D =

λi and ξi satisfy 1 0 0

Aξi = λi ξi 0 1 0

0 0 -2

>> [A*V(:,3) D(3,3)*V(:,3)]

ans =

• [V,D] = eig(A) returns

0.20966 0.20966

the eigenvectors of A in

0.62897 0.62897

the columns of V, and the

eigenvalues in the -1.8869 -1.8869

diagonal elements of D.

Intro MATLAB

151

Singular Value Decomposition: svd

svd: factors an n x m >> A = [2 -1; 1 1; 6 -1];

matrix A as A = USVT, >> [U,S,V] = svd(A)

where U and V are U =

orthogonal matrices, and -0.32993 0.47852 -0.81373

-0.12445 -0.87653 -0.46499

S is a diagonal matrix

-0.93577 -0.052149 0.34874

with singular values of A. S =

6.4999 0

0 1.3235

Useful in solving least 0 0

squares problems. V =

-0.98447 -0.17558

0.17558 -0.98447

Intro MATLAB

152

Pseudoinverse: pinv

pinv: The pseudoinverse of >> A = [2 -1; 1 1; 6 -1];

an n x m matrix A is a matrix >> B = pinv(A)

B =

B such that -0.013514 0.13514 0.14865

-0.36486 0.64865 0.013514

BAB = B and

>> A*B*A

ABA = A ans =

2 -1

1 1

6 -1

MATLAB uses the SVD of A >> B*A*B

to compute pinv. ans =

-0.013514 0.13514 0.14865

Useful in solving least -0.36486 0.64865 0.013514

squares problems.

Intro MATLAB

153

More Matrix Math in MATLAB

• det(A): computes determinant • lsqnonneg(A,b): non-negative least

squares

computes exponential, logarithm the range and null space of A

and square root of A

• qr(A): orthogonal-triangular

decomposition of A

• polyvalm(p,A): evaluate matrix

polynomial, p(A).

• subspace(A,B): computes angle

between subspaces defined by A and B

• lscov(A, b, V): computes least

square solution with known

covariance

Intro MATLAB

154

Ordinary Differential Equations

MATLAB has a collection of m-files, called the ODE suite

to solve initial value problems of the form

M(t,y)dy/dt = f(t, y)

y(t0) = y0

where y is a vector.

coupled first order differential equations.

Intro MATLAB

155

Steps in ODE Solution Using MATLAB

Express the differential equation as a set of first-order ODEs

M(t,y)dy/dt = f(t,y)

Write an m-file to compute the state derivative

function dydt = myprob(t, y)

[t, y] = ode_solver(‘myprob’, tspan, y0);

Solution Initial

Time Solution ODE ODE file

time span conditions

index matrix solver for

derivatives [t0 tf]

Intro MATLAB

156

ODE Suite Solvers

• ode23: explicit, one-step • ode23s: implicit, one-

Runge-Kutta low-order step modified

solver Rosenbrock solver of

order 2

• ode45: explicit, one-step • ode15s: implicit, multi-

Runge-Kutta medium

step numerical

order solver. First solver differentiation solver of

to try on a new problem varying order. Solver to

• ode113: multi-step try if ode45 fails or is too

inefficient

Adams-Bashforth-Moulton

solver of varying order

Intro MATLAB

157

Example : van der Pol Equation

function dydt = vdpol(t,y)

Equation is

%

d x/dt - µ(1-x2)dx/dt +

2 2

mu = 2;

Convert to first order ODEs

using dydt = [y(2);mu*(1- …

y(1)^2)*y(2)-y(1)];

y1 = x, y2 = dx/dt

dy1/dt = y2 ODE File vdpol.m

dy2/dt=µ(1-y12)y2-y1

Intro MATLAB

158

van der Pol Equation Solution

>> tspan = [0 20];

>> y0 = [2; 0];

>> [t, y] = ode45('vdpol', tspan, y0);

>> plot(t, y(:,1), t, y(:,2), '--');

Intro MATLAB

159

More on ODE Solvers

ODE file. Check HELP on odefile for details.

the ODE solver options.

the solution.

Intro MATLAB

160

Numerical Integration

• trapz: Trapezoidal integration

quadrature

8-panel rule

Intro MATLAB

161

Integration Example: humps Function

>> x = linspace(-1,2,150);

>> y = humps(x);

>> plot(x,y)

>> format long

>> trapz(x,y) % 5-digit accuracy

ans =

26.344859225225534

ans =

26.344960501201232

ans =

26.344960471378968

Intro MATLAB

162

Root Finding and Minimization

variable

minima of functions of one and several variables

Intro MATLAB

163

Example of Polynomial Roots

p(x)=x3+4x2-7x-10

Intro MATLAB

164

Example of Roots for Nonlinear Functions

Intro MATLAB

165

Example of Function Minimization

>> p = [1 0 -2 -5];

>> x = linspace(0,2,100);

>> y = polyval(p,x);

>> plot(x,y)

>> fminbnd('x.^3-2*x-5',0,2)

ans =

0.8165

>> polyval(p,ans)

ans =

-6.0887

Intro MATLAB

166

Lab 1

Consider the set of equations Ax=b where A is an 8x8 matrix given by

A(i,j)=1.0+(|i-j|/8.0)½

and b is a 8x1 array given by

b(i)=i

Solve for x using:

The \ operator

LU Decomposition

How do your answers compare?

For best performance, evaluate the matrix A without using any for loops

Intro MATLAB

167

Lab 2

result is analytically calculated to be π/4.

Use the following three MATLAB functions:

– trap()

– quad()

– quadl()

and compare the accuracy of your numerical result with the

exact value.

Use quad or quadl to get the most accurate result possible with

MATLAB. How accurate is it?

Intro MATLAB

168

Graphics, Data Visualization &

Movies

169

Overview

Plots

Simple plots

Surface Plots

Patches

Contour Plots

Visualization

Images

Indexed images

Intensity images

Truecolor images

Movies

Intro MATLAB

170

Basic XY Plot

>> x = [0:pi/100:pi];

>> y = sin(x);

>> plot(x,y), title('Simple Plot')

Intro MATLAB

171

Multiple Curve Plots

>> z = cos(x);

>> plot(x,y,'g.',x,z,'b-.'), title('More Complicated')

all within single quotes

Intro MATLAB

172

Plot Power: Contour & 3-D Mesh

>> t = 0:pi/25:pi;

>> [x,y,z] = cylinder(4*cos(t));

>> subplot(2,1,1)

>> contour(y)

>> subplot(2,1,2)

>> mesh(x,y,z)

>> xlabel('x')

>> ylabel('this is the y axis')

>> text(1,-2,0.5,...

'\it{Note the gap!}')

To save:

print -djpeg myfigure.jpg

use help print for options

Intro MATLAB

173

Subplots

Used to display multiple plots in the same figure window,

subplot(m,n,i) subdivides the window into m-by-n subregions

(subplots) and makes the ith subplot active for the current plot

>> subplot(2,3,1)

>> plot(t, sin(t), 'r:square')

>> axis([-Inf,Inf,-Inf,Inf])

1 3

>> subplot(2,3,3)

>> plot(t, cos(t), 'g') 2

>> axis([-Inf,Inf,-1,1])

>> subplot(2,3,5)

>> plot(t, sin(t).*cos(t), 'b-.')

>> axis([-Inf,Inf,-Inf,Inf])

4 5 6

Intro MATLAB

174

Mesh Plots

• MATLAB defines a surface by the z-coordinates of points above a rectangular

grid in the x-y plane

• Plot is formed by joining adjacent defining points with straight lines

• Surface plots are used when matrices are too large to visualize numerically,

and also to graph functions of two variables

• Use to generate a colored wire-frame view of a surface displayed in a 3-D

view

• Only the lines connecting the defining points are colored

of matrix Z, where Z(i,j) define the

height of a surface over the rectangular

x-y grid:

>> figure(2);

>> [X,Y] = meshgrid(-16:1.0:16);

>> Z = sqrt(X.^2 + Y.^2 + 5000);

>> mesh(Z)

Intro MATLAB

175

Surface Plots

• surf(Z) generates a colored faceted 3-D view of the surface.

– By default, the faces are quadrilaterals, each of constant color,

with black mesh lines

– The shading command allows you to control the view

>> figure(2); Default: shading faceted

>> [X,Y] = meshgrid(-16:1.0:16);

>> Z = sqrt(X.^2 + Y.^2 + 5000); >> shading flat

>> surf(Z) >> shading interp

Intro MATLAB

176

Surface Plots: Colormaps

Intro MATLAB

177

More Surface Plots

>> meshc(Z)

>> meshz(Z)

>> surfl(Z)

>> pcolor(Z)

Intro MATLAB

178

Patches

• A patch is a graphics object which contains one or more polygons.

• The polygons don’t have to be connected

• Useful for modeling real-world objects such as missiles and tanks

• Use the patch function to display a patch

• One way to define a patch is to specify Faces and Vertices

Vertices, v Faces, f

Vertex 1 0 0 0

Vertex 2 1 0 0 Face 1 1 2 3 4

Vertex 3 1 1 0 Face 2 5 6 7 8

Vertex 4 0 1 0 Face 3 1 2 6 5

Vertex 5 0.25 0.25 1 Face 4 2 3 7 6

Vertex 6 0.75 0.25 1 Face 5 3 4 8 7

Vertex 7 0.75 0.75 1 Face 6 4 1 5 8

Vertex 8 0.25 0.75 1

Intro MATLAB

179

Patches: MATLAB code

>> v = [0 0 0; 1 0 0 ; 1 1 0; 0 1 0; 0.25 0.25 1; 0.75 0.25 1; 0.75 0.75 1; 0.25

0.75 1];

>> f = [1 2 3 4; 5 6 7 8; 1 2 6 5; 2 3 7 6; 3 4 8 7; 4 1 5 8];

>> % Code to make top figure on previous slide

>> patch('Vertices', v, 'Faces', f, 'FaceVertexCData', hsv(6), 'FaceColor', 'flat')

>> view(3)

>> axis square

>> grid on

>> clf

>> % Code to make bottom figure on previous slide

>> patch('Vertices', v, 'Faces', f, 'FaceVertexCData', hsv(8), 'FaceColor',

‘interp’)

>> view(3)

>> axis square

>> grid on

Intro MATLAB

180

Contour Plots

• Use to create, display, and label isolines determined by one or more

matrices

• contour(Z) generates isolines from values given by a matrix Z and

displays it in 2-D

• contour3(Z) generates isolines from values given by a matrix Z and

displays it in 3-D

>> Z = peaks;

>> contour(Z,40)

>>

>> Z = peaks;

>> contour3(Z,40)

>>

Intro MATLAB

181

More Contour Plots

>> Z = peaks; >> Z = peaks;

>> [C, h] = contour(Z, 10); >> [C, h] = contourf(Z, 10);

>> clabel(C, h); >> title('Filled Contour')

>> title('Labeled Contour') >>

Intro MATLAB

182

Visualization: Light

• Technique for adding photo-realistic appearance to a graphical scene

• Use light to create lighting effects in MATLAB in conjunction with

the following three important properties >> set(L1, 'Color', 'g')

– Color

– Style

– Position

>> set(L1, 'Position', [-1, -1, 1]) >> set(L1, 'Style', 'local')

Intro MATLAB

183

MATLAB Lighting Code

>> % This code creates the upper left figure on previous slide

>> [X, Y, Z] = sphere(64);

>> h = surf(X, Y, Z);

>> axis square

>> reds = zeros(256, 3);

>> for i=1:256

reds(i, 1) = (i-1)/255;

end

>> colormap(reds)

>> shading interp

>> L1 = light('Position', [-1, -1, -1]);

>> lighting phong

>> set(h, 'AmbientStrength', 0.75);

>> set(h, 'DiffuseStrength', 0.5);

Intro MATLAB

184

Visualization: Viewpoint

• Use view to specify the viewpoint by defining azimuth and elevation with

respect to the origin • MATLAB defaults

– For 2-D plots, azimuth = 0o elevation = 90o

– For 3-D plots, azimuth = -37.5o elevation = 30o

y

Elevation

x

Azimuth

Intro MATLAB

185

Visualization: Camera Properties

• Use the set command to modify parameters associated

with a graphics object. In this case, the Camera Properties

>> set(gca,'CameraTarget',[0,0,2])

>> set(gca,'CameraPosition',[-800,-800,13])

Default View

>> set(gca,'CameraUpVector',[0,1,0])

Intro MATLAB

186

Camera Default Properties

MATLAB defaults:

– CameraPosition: Position adjusted such that the orientation of the scene is

the standard MATLAB 2-D or 3-D view

– CameraUpVector: y-direction for 2-D views and z-direction for 3-D views

– CameraViewAngle: Angle adjusted such that scene fills the position rectangle

– Projection: orthographic

Intro MATLAB

187

Indexed Images

• Consists of a data matrix, I and a colormap matrix, C

– C is an m-by-3 matrix, with each row specifying the R, G, and B

components of a single color

– Values in C are floating point numbers in the range [0, 1]

– Color of each pixel is determined by using the corresponding value

of I as an index into the colormap

R G B

1 0 0 1

1 1 0 2

I C 1 0.35 0.25 m

Intro MATLAB

188

Intensity Images

• Consists of a data matrix, I, whose values represent intensities within some

range.

– For double-precision data, the intensity values are in the range [0, 1], where 0

represents black, and 1 represents white. Values in between 0 and 1 represent shades

of gray

>> imagesc(I, [0, 1]); colormap(gray);

– The second input argument [0, 1] to imagesc specifies the desired intensity range. I

is displayed by first mapping the first value in the range to the first colormap entry,

and second value in the range to the last colormap entry. Values in between are

mapped linearly.

• To automatically map the minimum value in I to the first colormap entry, and the

maximum value in I to the last colormap entry, do the following.

>> imagesc(I); colormap(gray);

Intro MATLAB

189

Truecolor Images (RGB Images)

• Consist of a m-by-n-by-3 data array, I, containing the R, G, and B components for each

individual pixel HumVee(:, :, 3)

– I(:, :, 1) is the red component of the image

– I(:, :, 2) is the green component of the image

– I(:, :, 3) is the blue component of the image

• To display a truecolor image, do the following

>> image(I)

– Truecolor images do not use colormaps

HumVee(:, :, 2)

HumVee(:, :, 1)

Intro MATLAB

190

Summary: Commands to Display

Images

Use the following to display an Indexed image.

>> image(I); colormap(map)

>> imagesc(I); colormap(map);

>> image(I);

Intro MATLAB

191

Reading Images

formats including

– BMP, HDF, JPEG, PCX, TIFF, XWD

• Use function imread to read image files

– imread reads indexed, intensity, and

truecolor images

– Images are read into a uint8 matrix of

appropriate size

• imread automatically determines the

format of the image based on

information in the header

– You can specify a format as an optional

second argument

Intro MATLAB

192

MATLAB Code for Reading Images

>> image(Crusader)

>> whos Crusader

Name Size Bytes Class

Crusader 186x250x3 139500 uint8 array

bytes

Intro MATLAB

193

Writing Images

• MATLAB can write images of various formats including the following

– BMP, HDF, JPEG, PCX, TIFF, XWD

• Use function imwrite to write image files

– imwrite writes indexed, intensity, and truecolor images

– Images are written as a uint8 matrix (converted if necessary) of appropriate size

along with colormaps (if necessary) and headers

• imwrite determines the format from extension of filename. You can specify an

optional format if extension is absent or to force a particular format

Use

imfinfo(filename)

to get information on

an image file

Intro MATLAB

194

Writing Images: MATLAB code

>> Abrams = imread(‘Abrams.jpg');

>> image(Abrams)

>> whos Abrams

Name Size Bytes Class

Abrams 511x640x3 981120 uint8 array

Grand total is 981120 elements using 981120 bytes

>> % Write out tank as gray image

>> AbramsGray = rgb2gray(Abrams);

>> colormap gray;

>> image(AbramsGray)

>> imwrite(AbramsGray, gray, 'Abrams.bmp');

Intro MATLAB

195

Creating Movies in MATLAB

MATLAB movies are stored in an array of movie frames. For example, in a movie array

M, the ith frame is M(i).

A movie frame is a structure having the fields "cdata" and "colormap" which contain the

image data in a uint8 matrix and the colormap in a double matrix. Movie frames can

be created by following commands

– getframe returns a movie frame by taking a snapshot of the current axis. For

example, F=getframe;

– im2frame converts an indexed image into movie format.

For example, F=im2frame(A,MAP) returns the frame as an indexed image

matrix A and a colormap MAP.

A MATLAB movie array can be played back by the movie command.

movie(M,N,FPS) plays the movie M for N times at FPS frames per second. The

default if FPS is omitted is 12 fps.

Intro MATLAB

196

Movie Preparation & Play

Intro MATLAB

197

MATLAB movie ↔ AVI format

• movie2avi(M,FILENAME,PARAM,VALUE,PARAM,VALUE...) creates an AVI file from the

MATLAB movie M using the specified parameter settings. Available parameters are

– FPS - The frames per second for the AVI movie. The default is 15 fps.

– COMPRESSION - A string indicating the compressor to use. For example, ‘Indeo3’, ‘Indeo5’,

‘Cinepak’, ‘MSVC’, or ‘None’.

– QUALITY - A number between 0 and 100. Higher quality numbers result in higher video quality and

larger file sizes. The default is 75.

– KEYFRAME - For compressors that support temporal compression, this is the number of key frames per

second. The default is 2 key frames per second.

– COLORMAP - An M-by-3 matrix defining the colormap to be used for indexed AVI movies.

– VIDEONAME - A descriptive name for the video stream. This parameter must be no greater than 64

characters long. The default name is the filename.

Intro MATLAB

198

Example that Illustrates the Use of Movies to

Visualize the Various Powers of the N-th Root of

Unity, exp(2pi / n)

figure(1)

numframes=16;

% current axes for the current figure

set(gca, ‘NextPlot', 'replacechildren')

axis equal % fix the axes

for k=1:numframes

plot(fft(eye(k+16))); % eye: Identity matrix

A(k)=getframe;

end

movie(A)

Intro MATLAB

199

aviread

• Refer to Example 1 in movie documentation (doc

movie) to create frame array F using getframe then:

>> M = aviread(‘wave.avi’)

>> movie(M)

Intro MATLAB

200

Lab 1

Show views from various angles of the surface defined by the following function:

z = |x| * exp(-x2-y2) * y

in MATLAB, use: Z = abs(X) .* exp(-X .^ 2 – Y .^ 2) .* Y;

Define an x-y grid with x and y in [-2, 2] with increments of 0.2. Show a total of 6

views in the same figure. Camera parameters for each view should appear in the

title for the sub-image.

Detailed Instructions

Use meshgrid to define the grid ([X, Y] = meshgrid(-2:0.2:2, -2:0.2:2);)

Use “subplot” to get multiple plots in the same figure

Use surfc for the first three plots, and surf for the remaining three plots

Use the “shading” and “view” functions to achieve desired appearance and view

Set the title for each view using the “title” function

Use “axis tight” to make the surface fill the extent of the axes for each view

Use “axis vis3d” to preserve aspect ratio for different views

Set the size and position of the figure window using the “set” function.

Intro MATLAB

201

Inter-Language Programming

202

MEX Basics

MEX stands for MATLAB EXecutable

MEX files are C and FORTRAN programs that are callable from MATLAB after

compiling

Why?

codes in MATLAB

Computations that do not run fast enough in MATLAB, such as for loops, can be

coded in C or FORTRAN for efficient implementation.

port, etc.

Intro MATLAB

203

MEX Procedure

Procedures for working with MATLAB’s MEX mechanism

1. Prepare the C or Fortran MEX program according to

MATLAB external interfacing rules

2. Compile the C or FORTRAN MEX program using

MATLAB command “mex”

3. mex in turn makes use of external C or FORTRAN

compilers

4. Call the compiled MEX function in the same way as

calling any MATLAB function

Intro MATLAB

204

MEX Include File : mex.h

mexErrMsgTxt() in our example )

of all mx* API functions (e.g. mxGetN() in our example)

Intro MATLAB

205

Gateway Function : mexFunction()

• Equivalent to main() in C programs

• Has 4 arguments

void mexFunction (int nlhs, Number of LHS

arguments

Pointer to array of

of LHS argument mxArray *plhs[],

pointers

arguments

Pointer to array of

of RHS argument const mxArray *prhs[])

pointers

Intro MATLAB

206

Sample Problem: Scaling

Simple example: A C function that takes its input, multiplies

each element by 2, and then returns the “scaled-up” values

be emphasized

>> [a b] = timestwo(x,y);

Intro MATLAB

207

mexFunction in Scaling Example

In MATLAB: >> a = timestwo(x)

void mexFunction(

In timestwo.c: int nlhs, mxArray *plhs[],

int nrhs, const mxArray *prhs[])

nlhs = 1 nrhs = 1

Intro MATLAB

208

MEX Procedure

1. Compile timestwo.c using “mex” command in MATLAB

Compiling mex program,

>> mex timestwo.c timestwo.c

>> dir *.mexw32

generated after compiling

>> [a b] = timestwo(5,6)

a =

10

b =

12

Intro MATLAB

209

timestwo.c

include #include “mex.h” // do not forget this

“mex.h” void mexFunction(int nlhs, mxArray *plhs[],

int nrhs, const mxArray *prhs[]) {

Gateway double *p,*n; // pointers to output and input arrays

function and int i,j,m,n; // indices and dimension variables

its 4 if (nrhs != nlhs) // Error Check

arguments mexErrMsgTxt(“Number of input and output args differ");

for(i = 0; i < nrhs; i++) {

Dynamically m = mxGetM(prhs[i]); n = mxGetM(prhs[i]); // get dims

allocate plhs[i] = mxCreateDoubleMatrix(m,n,mxREAL);

memory for data1 = mxGetPr(prhs[i]); // retrieve input

the output data2 = mxGetPr(plhs[i]); // create pointer to output

array for(j = 0; j < m*n; j++ {

data2[j] = 2 * data1[j];

Processing }

the input }

parameters }

Intro MATLAB

210

Using MATLAB on Glenn

documented on the website

● Sample script:

#PBS -l nodes=1:ppn=1

#PBS -l walltime=1:00:00

module load matlab

matlab -nodisplay < myscript.m

211

- Matlab CompilerUploaded byAmr_Halawa
- MatlabSeminar MainUploaded byophank
- Matlab TutorialUploaded byrockettekcor
- Mathematical Methods Lecture NotesUploaded byNavadeep Boruah
- Linear AlgebraUploaded bymatty_yomo
- Editing and Debugging MATLAB ProgramsUploaded byapecevsb
- H&OE_ Brochure-Final-2018-2019.docxUploaded byNaveen
- Build CAN Communication Simulink Models - MATLAB & SimulinkUploaded byWan MK
- ManuallUploaded byMahmood Bhai
- MATLAB EnvironmentUploaded byJoshua Allen Alcaraz
- electrical transient.pdfUploaded byalexwoodwick
- Simulation Lab PPT.pptUploaded byyuvakirani
- 130332121-Image-Acquisition-Matlab.pdfUploaded byjarwo kuat
- The finite element methodUploaded byem13un
- MD ADAMSUploaded byvvipmembers
- Gpu Computing With Matlab PDFUploaded byAldrena
- Iview QuestUploaded byRAHA TUDU
- 101Uploaded byJean-nette Barlisan
- Zeynep NFT Toolbox10sssUploaded byAmilaPrasadInduranga
- IntroductionUploaded byBedewi Bilal
- tutorialSimcouplerUploaded byJosé Luis Camargo Olivares
- Matlab Manual1Uploaded byvenkatcharms
- Chapter1_MatlabIntroductionUploaded bymazlum
- WORKSHOP Brochure- MitUploaded byshiva shakthy
- Log-Euclidean Metrics for Fast and Simple Calculus on Diffusion Tensors.pdfUploaded byKushal Kunwar
- MatlabUploaded byEren Võ
- MatlabUploaded byEstrellita Sy Viduya
- Assignment 1AUploaded byajay kumar
- 2 Graphics DevicesUploaded byAkshay Mehta
- Sv InstallUploaded byManuel Hidalgo

- U2 - Access Control Solution 20141105-1Uploaded byAnonymous 5nbEAQYiX9
- Civil Service Induction_17.02.16Uploaded byAnonymous 5nbEAQYiX9
- Lecture 13Uploaded byAnonymous 5nbEAQYiX9
- Practice Exam SolutionUploaded byAnonymous 5nbEAQYiX9
- Information SecurityUploaded byamit
- program.docxUploaded byAnonymous 5nbEAQYiX9
- bp.pdfUploaded byAnonymous 5nbEAQYiX9
- Reference Letter - Bledar KaziaUploaded byAnonymous 5nbEAQYiX9
- MatlabUploaded byDINESHKUMARMCE
- psversion.txtUploaded byAnonymous 5nbEAQYiX9
- EulaUploaded byBluo's Clues
- sigurUploaded byAnonymous 5nbEAQYiX9
- VijaUploaded byAnonymous 5nbEAQYiX9
- KaterkendeshiUploaded byAnonymous 5nbEAQYiX9
- Base Code.txtUploaded byAnonymous 5nbEAQYiX9
- Edge DetectionUploaded byAnonymous 5nbEAQYiX9
- DigitalUploaded byAnonymous 5nbEAQYiX9
- Introduction to Cmputer ArchitectureUploaded byAnonymous 5nbEAQYiX9
- ArchitectureUploaded byAnonymous 5nbEAQYiX9
- leksion openglUploaded byAnonymous 5nbEAQYiX9

- 930XII - Arrays Old Q&AUploaded byhuyeb
- Computer Practical (C++ Programs) for CBSE XII Practical ExamsUploaded byShiladitya
- HW1-2015-2Uploaded byBradley Martinez
- Vector Math Library OverviewUploaded byweb22
- MA Economics Syllabus Sem I to IV- 2016-17Uploaded byAnjaliPunia
- ReportUploaded byShyam Shankar
- Dual Degree B Tech Mineral Engineering With M Tech in Mineral Resource ManagementUploaded bybradburywills
- A generalized index of ethno linguistic fractionalization.pdfUploaded byNathan Delgado
- Matlab project Matlab Codes: Spatial Image enhancement techniques Special Filtering Principle objective of Spatial Domain Image Processing is to process an image so that result is sharper than original image for specific application. Spatial Domain Image Processing techniques provide a multitude of choices for improving the visual quality of images. This project will provide an overview of underlying concepts, along with algorithms and programs commonly used for spatial filtering. The project focuses on techniques for image enhancement using various filters such as image enhancement using the laplacian filter and high-boost filtering. Principle objective of Spatial Domain Image Processing is to process an image so that result is sharper than original image for specific application. Spatial Domain Image Processing techniques provide a multitude of choices for improving the visual quality of images. This project will provide an overview of underlying concepts, along with algUploaded byanssandeep
- Modeling Electrical Resistivity With RES2DMODUploaded byAsem A. Hassan
- Santos Et. Al., 2017Uploaded byFernanda Lago
- mathsUploaded bysanagavarapu
- Matlab Primer 3eUploaded bysujetagottra
- Benton & Grant 1999 Elasticity Analysis as an Important Tool in Evolutionary and Population EcologyUploaded byMariana Santana
- Jadu File - ExcelUploaded byشاہد ندیم
- Homework 2Uploaded byAle Gomez
- Ssc PapersUploaded byGopikishore Maddineni
- Retrofit Optimization Framework for Compact Heat ExchangersUploaded bykim haksong
- 2012 Gauss Seidel JacobiUploaded byKukuh Kurniadi
- I SEM Common Syllabus B.ebUploaded byDinesh Krishnan
- Vikram Mutneja (316049619)Uploaded byMadalina Mirela Bivolaru
- Virtual Dressing RoomUploaded byTudor Trişcă
- FederalistUploaded byman_ager
- (SpringerBriefs in Mathematics) Călin-Ioan Gheorghiu (Auth.)-Spectral Methods for Non-Standard Eigenvalue Problems_ Fluid and Structural Mechanics and BeyondUploaded byflausen
- BookUploaded bymauricio carrillo oliveros
- 1608.03355Uploaded byRichard Zhu
- Bhsat Xxi Packet 2Uploaded byDavid Choi
- dwh duwhdj lihoiwd rejrhgr krihgm rfujr f kjhrrfnfnr fkrifnrUploaded byTekken Tarun Striker
- User requirements documentation techniques: a quantitative analysisUploaded byDr Muhamma Imran Babar
- Adv Micro CourseUploaded byNdivhuho Neosta