Top Banner
Getting Started with MATLAB PsiPhiETC www.psiphi.in January 1, 2012 PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 1 / 74
74

Getting Started with MATLAB: Slides

Oct 02, 2014

Download

Documents

jsinghdrdo

These slides were made for introductory course on Getting Started with MATLAB. The course includes interactive computations, programming, graphics, simulink and GUI development. The course notes and slides may be downloaded from www.psiphi.in. See this website for updates and course schedule.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Getting Started with MATLAB: Slides

Getting Started with MATLAB

PsiPhiETC

www.psiphi.in

January 1, 2012

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 1 / 74

Page 2: Getting Started with MATLAB: Slides

Motivation

Why are you interested in MATLAB?

Driven byPresent AssignmentCuriosityUrge for Value Addition

Reason

Belief

Action Reward

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 2 / 74

Page 3: Getting Started with MATLAB: Slides

Motivation

What is MATLAB?

MATrix LABoratoryHigh-performance scientific computationMATLAB System Integrates

1 Computation2 Visualization3 Programming

in an easy-to-use environmentMATLAB System Consists of

1 Desktop Tools and Dev Environment2 Mathematical Functions Library3 Programming4 Graphics5 External Interface

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 3 / 74

Page 4: Getting Started with MATLAB: Slides

Motivation

Features of MATLAB!

Library of Mathematical FunctionsInteractive Computations throughCommand WindowProgramming for Complex ProblemsGraphics for Data Analysis andVisualizationGraphical User Interface (GUIDE)Specialized Toolboxes (Simulink)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 4 / 74

Page 5: Getting Started with MATLAB: Slides

Motivation

Course Contents

# Topic Reference1 Introduction RP Ch1&22 Getting Started RP Ch23 Interactive Computation RP Ch34 Programming and Scripts RP Ch45 Programming and Functions RP Ch46 Graphics-1 RP Ch67 Graphics-2 Notes8 GUIDE & Simulink Notes

No Promise, only Opportunity! No Teaching, only Learning!

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 5 / 74

Page 6: Getting Started with MATLAB: Slides

Motivation

Installation

Available for all major computingplatforms (Windows, Unix, Mac)World Wide Web:http://www.mathworks.com

Student and Professional VersionsRead the installation instructionscarefullyCheck Installation

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 6 / 74

Page 7: Getting Started with MATLAB: Slides

Motivation

Desktop Tools & Development Environment

Menu [Desktop Tools (Layout), Help Browser], Editor, Current Directory [pwd,ls, window, M-Lint], Command Window [x=1, Workspace, x+1, ans], CommandHistory [Selection, Execution], Docking, Start, Ref:GSG-Ch7

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 7 / 74

Page 8: Getting Started with MATLAB: Slides

Motivation

Ways to Get Help!

Extensive and excellentdocumentationHelp Browser

DemosSearch

Commands:lookfor ’string’help topicwhich topic

edit, H1 Line, Help, Code

1 >> lookfor mean2 >> help mean3 >> which mean4 >> edit mean

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 8 / 74

Page 9: Getting Started with MATLAB: Slides

Motivation

Some General Commands

clc clears command windowclf clears figureclear: multiple variable, all variablescd change directorydir show directory contentspath [pwd, directories in path]copyfile copies filesmkdir make directorydate display datequit quit matlabdiary records the sessionsmart recall

1 >> diary2 >> pwd3 >> clc4 >> x=2;y=3;5 >> clear x6 >> clear all

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 9 / 74

Page 10: Getting Started with MATLAB: Slides

Motivation

Vectors and Scalars

Variable Namesrow vec ( [], col sep), col vec(row sep)’, . . . , ;a : ∆ : blinspace(a,b,n)+, -, cross, dot, .* , ./, .^sin, cos, log, sqrtformat

1 >> rv=[1,2,3]2 >> cv=[1;2;3]3 >> v1=1:1:34 >> v2=linspace(1,3,3)5 >> v3=v1'6 >> v4=v1+v27 >> v5=v1.*v28 >> v6=sqrt(v1)9 >> format long e

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 10 / 74

Page 11: Getting Started with MATLAB: Slides

Motivation

Simple Plots

plot (x,y)axis tight | equalxlabel (’string’)ylabel (’string’)title (’string’)grid on | off

1 x=linspace(0,2*pi,100);2 y=sin(x);3 plot(x,y);4 xlabel('x');5 ylabel('sin(x)');6 title('x vs sin(x)');7 axis tight;grid on;

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 11 / 74

Page 12: Getting Started with MATLAB: Slides

Motivation

MATLAB Editor

Menu BarTool BarEditing SpaceLine NumberCode AnalysisMessageDocument BarStatus BarExecution andDebugging

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 12 / 74

Page 13: Getting Started with MATLAB: Slides

Motivation

MATLAB Script

% for commentsH1 Line, HelpValid MATLABcommands andexpressionsComment %, KeywordsSavingExecution

1 % Script to find triangle area2 % The help for ScriptExample.m3

4 base=2; %triangle base5 height=1; %triangle height6 Area=(1/2)*base*height;

1 >> lookfor triangle2 >> help ScriptExample3 >> ScriptExample4 >> base5 >> height6 >> Area7 >> clear all

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 13 / 74

Page 14: Getting Started with MATLAB: Slides

Motivation

MATLAB Functions

function[argout]=FN(argin)H1 Line% for commentsSavingexist (FN)argin pass by valuevariable are local

1 function [A]=FunctionExample(b,h)2 % FunctionExample for triangle area3 % The help for FunctionExample.m4 % Syntax A=FunctionExample(b,h)5

6 A=(1/2)*b*h;

1 >> base=2;height=1;2 >> Area=FunctionExample(base,height);3 >> b4 >> h5 >> A6 >> Area

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 14 / 74

Page 15: Getting Started with MATLAB: Slides

Interactive Computations

Matrix Creation?

Enclosed within square bracket []Entered row wiseColumn Separator: space or ,Row Separator: ;. . . (ellipsis) is used for continuation

1 >> A=[1, 2, 3; 4, ...5, 6]

2 A =3 1 2 34 4 5 6

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 15 / 74

Page 16: Getting Started with MATLAB: Slides

Interactive Computations

Matrix Indexing

A(i,j)=aij

size(A)=[m,n]

A(m1 : m2,n1 : n2) =

am1n1 . . . am1n2...

......

am2n1 . . . am2n2

A(:,k:end)

1 >> A=[1,2,3;...2 4,5,6]3 >> size(A)4 >> A(2,3)5 >> A(1:2,2:3)6 >> A(2,2:end)7 >> A(:,2:end)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 16 / 74

Page 17: Getting Started with MATLAB: Slides

Interactive Computations

Matrix Manipulation

Element: A(i,j)=aij

Row: A(m,:)=v1×n

Column: A(:,n)=vm×1

Submatrix: A(m1 : m2,n1 : n2) =B(m2−m1)×(n2−n1)

Appending: A=[A, vm×1], A=[A; v1×n]Deleting: A(m,:)=[], A(:,n)=[]eye(m,n), zeros(m,n), ones(m,n),magic(n)

1 >>A=[1,2,3;4,5,6];2 >>A(1,2)=9;3 >>A(2,:)=[9,9,9]4 >>A(:,3)=[9;9]5 >>A(1:2,2:3)=[9,9;9,9]6 >>A(3,:)=[9,9,9];7 >>A(:,4)=[9;9;9];8 >>A(3,:)=[]9 >>A(:,4)=[]

10 >>eye(3)11 >>zeros(3)12 >>ones(3)13 >>magic(3)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 17 / 74

Page 18: Getting Started with MATLAB: Slides

Interactive Computations

Matrix Operations

Arithmetic: +, -, *, /, ^Relational: <, >, <=, >=, ==, ∼=

Logical Operations: &, |, NOT ∼Logical Functions: all, any, exists,isempty, isinf, isnan

1 >> A=eye(2,2)2 >> B=ones(2,2)3 >> C=A*B4 >> R1=A<B5 >> R2=A==B6 >> R3=A 6=B7 >> L1=A&B8 >> L2=A|B9 >> F1=all(A)

10 >> F2=any(A)11 >> F3=isempty(A)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 18 / 74

Page 19: Getting Started with MATLAB: Slides

Interactive Computations

Elementary Maths Functions

Trigonometric: sin , asin, . . .Exponential: exp , log, . . .Algebraic: sqrt, nthroot, . . .Complex: abs, angle, conj, img, realRound-off: floor, ceil, fix, mod, remMatrix: expm, sqrtm

1 >> sin(pi/6)2 >> exp(1)3 >> sqrt(2)4 >> z=1+i5 >> abs(z)6 >> angle(z)7 >> floor(1.9)8 >> ceil(1.1)9 >> A=ones(2,2)

10 >> expm(A)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 19 / 74

Page 20: Getting Started with MATLAB: Slides

Interactive Computations

Character Strings

Single Quote: ’string’Manipulating stringevalnum2str, str2numlower, upperstrcmp, strncmpstrcat, findstr

1 >> s='Hello World'2 >> s(2)='E'3 >> eval('x=2*3')4 >> y='2.3'5 >> zn=str2num(y)6 >> zs=num2str(x)7 >> s1=lower(s)8 >> s2=strcat(s,s1)9 >> strcmpi('Hello','hello')

10 >> findstr(s,'W')

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 20 / 74

Page 21: Getting Started with MATLAB: Slides

Interactive Computations

Saving and Loading Data

matlab.matsavesave (’fn’,’vn’)loadload datafile.txtd=load (’datafile.txt’)

1 >> x=linspace(0,2*pi,10)2 >> y=sin(x)3 >> save4 >> clear all5 >> load6 >> save('myfile','x')7 >> clear all8 >> load myfile9 >> load datafile.txt

10 >> d=load('datafile.txt')

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 21 / 74

Page 22: Getting Started with MATLAB: Slides

Programming in MATLAB

Script Files

.m file containing validcommandsName shall starts with a letterand can have letters, digitsand _Avoid clash with names ofbuilt-in function (exist(’fn’))Variable Name 6= File NameWorks on global workspacevariablesUse of clear all

1 % solvex.m (Ref: RP)2 % 5 x1+2r x2+r x3=23 % 3 x1+6 x2+(2r-1) x3=34 % 2 x1+(r-1) x2+3r x3=55 A=[5, 2*r,r;3, 6, 2*r-1; ...

2, r-1, 3*r];6 b=[2;3;5];7 x=A\b

1 r=1;2 solvex

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 22 / 74

Page 23: Getting Started with MATLAB: Slides

Programming in MATLAB

Function Files

function[argout] =FunctionName (argin)Local VariablesPass-by valueReadability: H1, helpModularity: subfunctionRobustness: nargin,error(‘message’)Expandability: varargin

1 function [det_A, x]=solvexf(r)2 % SOLVEXF solves eqn with par r3 % Function file solvexf.m4 % To call this function, type:5 % [det_A,x]=solvexf(r)6 % r is i/p and det_A & x are o/p7

8 A=[5, 2*r, r; 3,6, 2*r-1; 2, ...r-1, 3*r];

9 b=[2;3;5];10 det_A=det(A);11 x=A\b;

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 23 / 74

Page 24: Getting Started with MATLAB: Slides

Programming in MATLAB

Control Flow: if-elseif-else

1 if expression2 statements3 elseif expression4 statements5 else6 statements7 end

1 if I == J2 A(I,J) = 2;3 elseif abs(I-J) == 14 A(I,J) = -1;5 else6 A(I,J) = 0;7 end

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 24 / 74

Page 25: Getting Started with MATLAB: Slides

Programming in MATLAB

Control Flow: for loops

1 for variable = expression2 statement(s)3 end

1 sum=0;2 for i=1:1003 sum=sum+i;4 end

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 25 / 74

Page 26: Getting Started with MATLAB: Slides

Programming in MATLAB

Control Flow: while loops

1 while expression2 statements3 end

Example of while loop,

1 v=1; num=1; i=1;2 while (num≤4096)3 v=[v;num];4 i=i+1;5 num=2^i;6 end7 v

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 26 / 74

Page 27: Getting Started with MATLAB: Slides

Programming in MATLAB

Control Flow: switch-case-otherwise

1 switch flag2 case val1 block 1 computation3 case val2 block 2 computation4 otherwise last block computation5 end

1 color= input('color= ','s');2 switch color3 case 'red' c=[1, 0, 0];4 case 'green' c=[0, 1, 0];5 case 'blue' c=[0, 0, 1];6 otherwise error('invalid')7 end

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 27 / 74

Page 28: Getting Started with MATLAB: Slides

Programming in MATLAB

break, continue and return

break terminates for or while loopcontinue pass control to the nextiteration of for or while loopreturn return to invoking function

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 28 / 74

Page 29: Getting Started with MATLAB: Slides

Programming in MATLAB

Interactive Input: input, keyboard and pause

Age=input(‘Age plz?’)Name=input(‘Name plz?’, ’s’)script/function keyboard k �statements returnpause, pause(n)

1 Age=input('Age Plz?');2 Name=input('Name Plz?','s');3 keyboard;4 >> Age5 >> Name6 k>> Age=217 k>> Name='ABC'8 k>> return9 pause(10)

10 disp(Age)11 disp(Name)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 29 / 74

Page 30: Getting Started with MATLAB: Slides

Programming in MATLAB

Input/Output

fid = fopen (fn, r|w|a)fclose (fid)fprintf (fid, format, x)x=fscanf (fid, format)sscanf, sprintffgets, fgetl

1 fid=fopen('a.txt','w');2 fprintf(fid,'pi=%10.8f \n',pi);3 s=sprintf('e=%10.8f\n',exp(1));4 fprintf(fid,s);5 fclose(fid);6 fid=fopen('a.txt','r');7 s1=fgets(fid);8 s2=fgetl(fid);9 PI=sscanf(s1,'pi=%f');

10 E=sscanf(s2,'e=%f');

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 30 / 74

Page 31: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Figure

h=figureh=gcffigure(h)Edit > Figure PropertiesProperty Editor > Figure

Name: ’string’Color: [r,g,b], (r ,g,b) ∈ [0,1]NumberTitle: {on}|off

More PropertiesMenubar: {figure}|nonePosition: [x,y,w,h]

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 31 / 74

Page 32: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Setting Figure Properties

h=figure or h=gcfget (h) -> ‘PropertyName’,PropertyValueget (h) -> ‘PropertyName’{PropertyValueActive} |PropertyValueOptionalset (h, ’PropertyName’,PropertyValue)

1 set (h,'Name','myName')2 set (h,'NumberTitle','off')3 set (h,'Menubar','none')4 set (h,'Color',[1,0,0])5 set (h, 'Position', ...

[500,200,400,300])

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 32 / 74

Page 33: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Axes

axesa=axes –> Handle aa=axes(’PropertyName’,PropertyValue)Important Properties:

ColorFontSize,FontWeight, . . .LineWidth, . . .XGrid, YGridXLim, YLimXTick, YTickXTickLabel,YTickLabel

1 a=axes;2 get(a);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 33 / 74

Page 34: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Setting Axes Properties

p=axes()get (p)set (p)set (p,’PropertyName’,PropertyValue)

1 set (a, 'Color' , [1,1,0])2 set (a, 'LineWidth' , 3)3 set (a, 'XGrid' , 'on')4 set (a, 'YLim' , [-1, 1])5 set (a, 'XTick' , [0.2,0.6,0.9])6 set (a,'XTickLabel',{0.2,'six',0.9} )7 set (a, 'YTick' , [0.3,0.6,0.9])8 set (a,'YTickLabel',{'y1',0.6,'y_2'} )

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 34 / 74

Page 35: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Plot

plot (y)plot (x,y)plot (x,y,’LineSpecs’)

Color: r,g,b,. . .LineStyle: -, –, . . .MarkerStyle: *, + . . .

plot (x,y, ’LineSpecs’,’PropertyName’,PropertyValue)LineStyle, LineWidth, Marker,

MarkerSize

1 x=0:10;2 y=x.^2;3 plot(x,y,'r-*', ...

'Linewidth', 3,...'MarkerSize', 12)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 35 / 74

Page 36: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Setting Plot Properties

p=plot (x,y)get (p)set (p)set (p, ’PropertyName’,PropertyValue)

1 x=0:10;y=x.^2;2 p=plot(x,y);3 set(p , 'Color' , [0,1,0]);4 set(p , 'LineWidth' , 3);5 set(p , 'LineStyle' , '-');6 set(p , 'Marker' , 'o');7 set(p , 'MarkerSize' , 12);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 36 / 74

Page 37: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Overlay Plot

plot (x1,y1,x2,y2)plot ( x1,y1,’LS1’, x2,y2,’LS2’)plot (x1,y1,’LS’, ’PropName’,PropValue)hold onplot (x2,y2, ’LS’, ’PropName’,PropValue)hold off;line (x, y, ’PropName’,PropValue)

1 x1=-5:5; y1=x1.^2;2 x2=-5:5; y2=x2.^3;3 p1=plot(x1,y1,'r-*');4 set(p1,'Linewidth',3);5 hold on;6 p2=plot(x2,y2,'b:o');7 set(p2,'Linewidth',4);8 hold off; grid on;9 set(gca,'Linewidth',2);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 37 / 74

Page 38: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Text on Plot

text(x,y,’string’)text(x,y,’string’,’PropertyName’,PropertyValue)t=text(x,y,’string’)get(t) , set (t)set (t,’PropertyName’,PropertyValue)gtext (’string’)gtext (’string’,’PropertyName’,PropertyValue)To Get Coordinate of a point:[x,y]=ginput (1)

1 x=0:10;y=x.^2;plot(x,y);2 t=text(1,20, 'P(1,20)');3 set(t,'FontSize',14);4 [x1,y1]=ginput(1);5 t1=text(x1,y1,'(x1,y1)')6 gtext('gtext','FontSize',14);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 38 / 74

Page 39: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Axis

axis ([xmin, xmax, ymin, ymax])axis equalaxis squareaxis tightaxis normal

Semi Control of Axis:axis (xmin,inf,-inf,ymax)

1 x=linspace(0,2*pi,100);2 y=sin(x);3 plot(x,y);4 axis([0,2*pi,-1,1]);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 39 / 74

Page 40: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Legend

legend (’string’)legend (’string1’,’string2’,. . . )legend (’string1’,’string2’,. . . ,’PropertyName’,PropertyValue)

1 x1=-5:5; y1=x1.^2;2 x2=-5:5; y2=x1.^3;3 p=plot(x1,y1,'r',x2,y2,'g');4 set(p,'Linewidth',4);5 l=legend('data x1-y1', ...

'data x2-y2');6 set(l,'Location','NorthWest');

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 40 / 74

Page 41: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Subplot

subplot (m,n,p)m: Number of rowsn: Number of columnsp: plot number

1 x1=-5:5; y1=x1.^2;2 x2=-5:5; y2=x2.^3;3 subplot (1,2,1);4 plot (x1,y1,'g','Linewidth',3);5 subplot (1,2,2);6 plot(x2,y2,'r','Linewidth',3);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 41 / 74

Page 42: Getting Started with MATLAB: Slides

Creating Graphics Programmatically

Findobj

h=findobjh=findobj (’PropertyName’,’PropertyValue’)h=findobj (ObjectHandles,’PropertyName’,’PropertyValue’)

1 x1=-5:5; y1=x1.^2;2 x2=-5:5; y2=x2.^3;3 plot (x1,y1,'r',x2,y2,'g');4 h1=findobj('Color','r');5 set(h1,'Linewidth',3);6 h2=findobj('Color','g');7 set(h2,'Color','b','Linewidth',3);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 42 / 74

Page 43: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Graphics Objects Hierarchy

FigureAxesPlot ObjectsAnnotation Objects

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 43 / 74

Page 44: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Plotting Process

Creating GraphExploring DataEditing Graph ComponentsAnnotation GraphsPrinting and Exporting GraphsAdding and Removing ContentsSaving Graph for Reuse

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 44 / 74

Page 45: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Figure Tools

ZoomPanData CursorBasic FittingData Statistics

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 45 / 74

Page 46: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Plotting Tools

plottoolsFigure PalettefigurepalettePlot BrowserplotbrowserProperty Editorpropertyeditor

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 46 / 74

Page 47: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Figure Palette: New Subplots

subplot(m,n,p)

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 47 / 74

Page 48: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Figure Palette: Variables and Plot Catalog

Figure PaletteWorkspace VariablesSelect VariableRight click for plot catalog

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 48 / 74

Page 49: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Figure Palette: Annotations

LineArrowDouble ArrowText BoxArrow Box. . .

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 49 / 74

Page 50: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Plot Browser

Displays all plot objectsSelect Plot ObjectChange ObjectPropertiesDeselect Plot ObjectAdd Data

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 50 / 74

Page 51: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Property Editor

Enable Edit PlotSelect ObjectGo to Property EditorChanging PropertiesMore PropertiesContext Menu

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 51 / 74

Page 52: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Printing

File > Print PreviewFigure Placement onPage, Paper Size andOrientation etcLine and TextPropertiesColor etc

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 52 / 74

Page 53: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Exporting

File > Export SetupChange PropertiesExportsaveas

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 53 / 74

Page 54: Getting Started with MATLAB: Slides

Creating Graphics Interactively

Saving

File > Saveas.fig.m (function)saveas

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 54 / 74

Page 55: Getting Started with MATLAB: Slides

Publishing Report

Introduction

Formatted report in HTML, PDF, LATEX, MS Word or MS PowerPointSteps Involved

Create a script fileDivide script into ‘code cells’Insert Text Markup for formattingEdit Publish ConfigurationPublish

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 55 / 74

Page 56: Getting Started with MATLAB: Slides

Publishing Report

Code Cells

Open MATLAB editorEnable Cell modeWrite ScriptDivide Script into Cells by %%Color change and cellseparation lineCan evaluate individual cell

1 %% Create vectors2 theta=linspace(0,10*pi,200);3 r=exp(-theta/10);4 %% Plot using polar plot5 polar(theta,r);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 56 / 74

Page 57: Getting Started with MATLAB: Slides

Publishing Report

Document Title and Introduction

Defined in first code cell, starting from1st line%% Document Title% Introduction% IntroductionMust put %% after introductionContents

1 %% This is the Title2 % Introductory text3 % Introductory text4 %%

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 57 / 74

Page 58: Getting Started with MATLAB: Slides

Publishing Report

Section and Section Titles

New cell in existing section%%New cell that starts newsection %% Section TitleNew section in existing cell%%% Section Title

1 %% New Section2 % introduction3 %%4 % Cell in Existing Section5 %%% New Section in ...

Existing Cell

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 58 / 74

Page 59: Getting Started with MATLAB: Slides

Publishing Report

Other Text Markup

*bold text *_ italic text_|monospace text|Bulleted List

* Item 1* Item 2

Numbered List# Item 1# Item 2

Hyperlinked Text < www.psiphi.in>

1 %% Other Text Markup2 % *bold text*3 % _italic text_4 % | monospace text |5 %6 % * Item 17 % * Item 28 %9 % # Item 1

10 % # Item 211 %12 % <www.psiphi.in>

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 59 / 74

Page 60: Getting Started with MATLAB: Slides

Publishing Report

Other Text Markup. . .

Including Image <<IMAGE.JPG>>LATEX Markup% <latex>% LATEX stuff% </latex>TEX Equations $$ eπi + 1 = 0 $$HTML Markup

1 %% More Text Markup2 % <IMAGE.JPG>3 % $$ e^{\pi i}+1=0 $$

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 60 / 74

Page 61: Getting Started with MATLAB: Slides

Publishing Report

Configuration

Output SettingsOutput File format : HTML, PDF,DOC, PPTOutput File Folder

Figure SettingImage FormatImage Size

Code SettingInclude CodeMax number of lines

publish for changing configurationfrom script

PDFHTMLDoc

FigureCode

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 61 / 74

Page 62: Getting Started with MATLAB: Slides

Publishing Report

Displaying Results

Command Window o/p:No ;disp display the resultsprintf is useful forformatted o/p

1 %% Displaying Output2 phi=1.618;3 PHI=(1+sqrt(5))/2;4 s=sprintf('phi=%5.3f, ...

PHI=%10.8f',phi,PHI);5 disp(s);6 disp(PHI);7 phi

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 62 / 74

Page 63: Getting Started with MATLAB: Slides

Publishing Report

Example File

1 %% Document Title2 % Introductory text3 %% Section4 % Section introduction5 %% Other Text Markup6 % *bold text* , _italic text_ , |monospace text|7 % <www.psiphi.in>8 %% More Text Markup9 % The TeX equations can be inserted like:

10 % $$\phi=\frac{1+\sqrt{5}}{2}$$11 %% Displaying Output12 phi=1.618; PHI=(1+sqrt(5))/2;13 s=sprintf('phi=%5.3f, PHI=%10.8f',phi,PHI);14 disp(s); disp(PHI); phi15 %% Plot16 theta=linspace(0,10*pi,200);17 r=exp(-theta/10); polar(theta,r);

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 63 / 74

Page 64: Getting Started with MATLAB: Slides

Building GUI

Building GUI

Graphical Display forPerforming Tasks InteractivelyEvents→ callback (function,string)Interactive GUI Construction(GUIDE)Programmatic GUIConstruction

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 64 / 74

Page 65: Getting Started with MATLAB: Slides

Building GUI

GUIDE

guideGetting HelpGUIDE Layout EditorFile > Preference > GUIDE >Show Names in Componentpalette > OKGUI Figure Size > Click andDrag CornerCreating Components

AxesPush ButtonStatic TextPop-up Menu

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 65 / 74

Page 66: Getting Started with MATLAB: Slides

Building GUI

Creating Simple GUI

simple_ guiAdding Components

AxesThree Push ButtonStatic TextPop-up Menu

Align Pushbuttons > Tools >Align Objects

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 66 / 74

Page 67: Getting Started with MATLAB: Slides

Building GUI

Creating Simple GUI. . .

Adding Text To ComponentsView > Property Inspector >Push Button: Select PushButton > String > Change itPopup Menu : Select PopupMenu > String >Components in differentlinesStatic Text: Select > String> Change it

Save SimpleGui

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 67 / 74

Page 68: Getting Started with MATLAB: Slides

Building GUI

Programming Simple GUI

Generating Data to PlotProgramming The PopupMenu: Context Menu, ViewCallbackProgramming The PushButton: Context Menu, ViewCallbackSave and Run GUI

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 68 / 74

Page 69: Getting Started with MATLAB: Slides

Simulink

Simulink

Dynamic SystemModeling : Comprehensive block library of sources,sink, linear and nonlinear components, connectorsetcSimulation : Wide choice of Integration MethodAnalysis: Linearization, MATLAB

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 69 / 74

Page 70: Getting Started with MATLAB: Slides

User Interface

User Interface

simulink orSimulink Library Browser

- Commonly Used Blocks- Continuous (Derivative,

Integrator, Transfer Function)- Math Operations (Gain, Sum)- Sources (sine wave, step)- Sinks (Scope, To Workspace)- Routing (Mux)

Simulink Model Window- Simulation (Start,

Configuration)- save, printPsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 70 / 74

Page 71: Getting Started with MATLAB: Slides

Example 1: Sine wave and its Integration

Example 1: Sine wave and its Integration

Display: sin(t) ,∫ t

t0sin τ dτ

Simulink >File > New > Model >SaveDrag from Library to Model Window

- Source > Sine Wave- Sink > Scope- Continuous > Integrator

- Signal Routing > Mux

Connect blocks- Select 1st > hold Ctrl > Select 2nd- Similar way for branching

Simulation: Configuration, StartScope: Zoom, Export Data

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 71 / 74

Page 72: Getting Started with MATLAB: Slides

Example: Spring Mass System (Direct Approach)

Example: Spring Mass System (Direct Approach)

x =1m

(f (t)− cx − kx)

Drag Components to model windowTo Rotate: Ctrl+R, To Flip: Ctrl+FGain Parameters by double clickMore input to Sum BlockConnect ComponentsSimout for variables to WorkspaceUnder damped, overdampedSee variables in workspacesim command

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 72 / 74

Page 73: Getting Started with MATLAB: Slides

Example: Spring Mass System (Transfer Function)

Example: Spring Mass System (Transfer Function)

x =1m

(f (t)− cx − kx)

Drag components to Model WindowConnect ThemDouble click transfer function block forparameter settingDouble click save output to file blockand set file path/nameRun simulationLoad mat file and plot data

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 73 / 74

Page 74: Getting Started with MATLAB: Slides

Example: Capacitor Charging

Example: Capacitor Charging

V (s) =1s

(1

RCU(s)− 1

RCV (s)

)

Drag components to Model WindowConnect ComponentsSet parameters for variouscomponentsPlay with Configuration (Solver etc.)SimulationSee results in scope

PsiPhiETC (www.psiphi.in) Getting Started with MATLAB January 1, 2012 74 / 74