MatlabI:Ge+ngStarted
DivisionofSta7s7csandScien7ficComputa7on
Instructor:YlaTausczik([email protected])
Agenda
Session1
– MatlabBackground• WhatisMatlab?History• MatlabaccessatUT
– MatlabGUIandNaviga7on– Commandlineprac7ce– Impor7ngdata– Expor7ngData
– Break
Session2
– Matlabnota7on
– Syntaxandopera7ons– Surveyoffunc7onality
• Func7ons,computa7ons
• M‐files,programming
• Simpleplo+ngprocedures
• Trivialsimula7on
– Q&A
Session1
• Introduc7on,history,accessatUT
• Ge+ngfamiliarwiththeinterface– Layout– Pulldownmenus– Windowpanels
• Crea7ngandmanipula7ngobjects– Scalars,vectors,matrices,textstrings
• Datatransport– Impor7ngintotheworkspace– Expor7ngfromtheworkspace
SlidesandFiles
h[p://homepage.psy.utexas.edu/homepage/students/Tausczik/Yla/
• PowerpointSlides• PlanetFiles
WhatisMatlab?
• MATLABderivedfromMATrixLABoratory – Applica7onkernel,e.g.,matlab‐7.6
• Computa7onalengine
• Built‐inlowlevelalgorithms(nosourcecode)
• Includesavarietyofgraphicalcapabili7es
– Suitewithcontemporaryreleases,e.g.R2008a
– Programminglanguage
WhatisMatlab?
• Designedtosolveproblemsnumerically– Par7cularlygoodformatrixopera7ons
– Usesfinite‐precisionarithme7c– Typicallyproducesapproximatedigitalsolu7ons
• Notdesignedassymboliccomputa7onsocware– DifferentfromMaple,Mathema7ca
• Easytolearnanduse– SimpliersyntaxrulesthanFortranorC
– Shorterdevelopment7meforprogramming
WhatisMatlab?
• Auxiliaries–usuallybundledwithkernel– Simulink(dynamicsystemsmodeling)– Stateflow(eventandlogic‐drivenmodeling)
• Toolboxes‐designedforspecificapplica7ons– Specializedcollec7onsofMATLABsourcefiles
• DevelopedorsupportedbyMathWorksInc.– SignalProcessing,Op7miza7on,ControlSystem,etc.
• Downloadablethirdpartyfreeware– Mul7pleprecisionarithme7c,robo7cs,etc.
Resource:h1p://www.mathworks.com/matlabcentral/
BriefHistoryofMatlab
• Originallywri[eninFortran– Author:CleveMoler,Univ.ofNewMexico
• Mathworks,Inc.foundedtofurtherdevelopit.– Incorporatedin1984– Coreiswri[eninC– Graphicalinterfaceiswri[eninJava– Runsonmanyplakorms
• Unix–Solaris,SGI,AIX,DigitalUnix• Linux• Windows• MacOS
AccesstoMatlabatUT‐Aus7n
• StudentMicrocomputerFacility(SMF)– SecondflooroftheFlawnAcademicCenter(FAC212)– MusthaveaUTEIDoranITS‐issuedaccount
h1p://www.utexas.edu/its/account/index.html
• CNSPCLab(ACA1.126)learningandinstruc=onuseonly• CNSMacLab(ACA1.124)licensedoesnotpermitresearch
• SSCservers– MatlabisinstalledontheSSCWindowsTerminalServer– ToaccessMatlabontheseserversyoumusthaveUTdiskspace
• $5peryearforUTstudentsandstaff
h1p://ssc.utexas.edu/so?ware/stat‐apps‐server
AccesstoMatlabatUT‐Aus7n
• ComputerStore(FAC109firstfloor)– Studentversion,musthaveastudentID– Fullfunc7onality,modestcost($97)
• PersonallicensefromMathWorksInc.– Specialacademicpricing– Studentversionwithdiscountpricing($99)
• h1p://www.mathworks.com/store/index.html
DefaultMatlab7DesktopGUI
GUILayout
• Windowstypeinterface
– Topnaviga7onbarwithpull‐downmenus• File• Edit• Debug• Desktop• Window• Help
– Toolbarwithicons
Naviga7onBar
• File– New(createnewm‐file,figure,variable)– ImportData
– SetPath(folders,directoriestosearch)– Preferences→CommandWindow
(numberformat,scrollbuffersize)
• Edit
– Find,Delete,Copy,Paste,etc.
Naviga7onBar
• Desktop– Chooselayoutfordisplayofwindows– Modifydefaultifdesired
• Help– LaunchMatlabHelpWindow
– Demos
DesktopNaviga7on
• FixedPlaceWindows(undockable)– TheCommandWindowrightsidepanel– TheWorkspaceWindowupperle?panel
– TheCurrentDirectoryWindowupperle?panel– TheCommandHistoryWindowlowerle?panel
• Floa7ngWindows(dockable)– TheHelpWindow– TheFigureWindow
– TheEditorWindow
CommandWindowOpera7ons
• Execu7ngcommandsatcommandline– Crea7ngobjects
>> a = 2
– Modifyingobjects >> a = a + 1
– Usingu7li7es(e.g., >> save a
• Runningprogramscripts(m‐files)
Crea7ngObjects‐Rules
• Everyobjectisamatrix– Ascalarisa1x1matrix– Arowvectorisa1xnmatrix– Acolumnvectorisanmx1matrix
• Everymatrixelementhasanumericalvalue– Non‐digitelementslinkedtoASCIIcodedigits
A→65,B→66,etc.a→97,b→98,etc.‐→45,_→95,etc
– Logicaltruthvaluesassignedtodigits(true→1,false→0)
Crea7ngObjects‐Rules
• Squarebrackets[]areobjectdelimiters– Impliedforscalars,butcanbepresent
• Example:6or[6]– Impliedforcharacterstringrowvectors
• Example:'matlab'or['matlab']
• Acolon:istheseparatorforranges– Syntaxis<boundary>:<spacing>:<boundary>– boundaryandspacingcanbeintegerorfrac7onal– spacingcanbeincrementalordecremental– []delimiterisimplied– defaultstructureisarowvector
– Examples• 6.32:2.18:83.447or[6.32:2.18:83.447]• 100:‐2:0or[100:‐2:0]
Crea7ngObjects‐Rules
• Separatorsforcolumnelementscommaor<space>
[1,2]→12
[345]→345
• Separatorsforrowelementssemicolonor<return>
[6;7]→67
[889→910]10
Crea7ngObjects‐Rules
• Assigningnames– Firstcharactermustbeupperorlowercasele[er
• BasicLa7nle[ersonly(noé,ç,å,ô,ü,ñ…)– Addi7onalcharacters–le[ers,digits,orunderscore– Le[ersarecasesensi7ve– Onlythefirst31charactersrecognized– Assignmentoperatorisasingle=character
• Example:my_0bj3cT = 123.456
• Conven=ons(notenforced)– Scalar/vectornamesbeginwithalowercasele[er– Matrixnamesbeginwithanuppercasele[er
CommandWindowU7li7es
• >><command>%→'%'symbolstartscommentareaforaline
• >>clear%clearsallobjectsinworkspace
• >>clearxy%clearsvaluesofobjectsxandy
• >>clc%clearscommandwindowscrollbuffer
• >>which<filename>%findsfirstoccurrenceinsearchpath
• >>who%listsallobjectsintheworkspace
• >><command>;%semicolon→%execute,nodisplayincommandwindow
• >><control>c%stopsprogramexecu=on
• >><control>q%stopsexecu=onandexitsMatlab
CommandWindowPrac7ce
• Createascalarwithnamea– Forexample,yourhomefivedigitZIPcode
• Createarowvectorwithnameb– Forexample,elementsfromyourphonenumberdigits
• Createacolumnvectorwithnamec– Forexampleleapyearsduringyourlife
• CreatearectangularmatrixwithnameD– Variablesincolumns–forexamplebirthmonth,day,year– Casesinrows–forexamplefather,mother
• Createacharacterstringwithnamee– Forexample,yourfirstname(needstobeinsinglequotes)
WorkspaceWindowOpera7ons
• Determineproper7esofavectorormatrix– byinspec7on– usingtoolbarView > Choose Columns
• Openanobject(vector,matrix)intheArrayEditor– Changethevalueofanelement
• Makeasimpleplotofaworkspaceobject(vectorormatrix)– Lineplot,stemplot,pie(objectmusthavenumericalelements)
• CreateanewmatrixobjectandassignavalueintheArrayEditor– Lecmostworkspacetoolbaricon– Re‐nametheobjectfromthedefaultnameunnamedtoF– ConfirmaccesstonewobjectintheCommandWindow
Impor7ngData
• Directassignmentfromkeyboard
• ImportWizard– File‐>ImportData– >>uiimport
Example:>> uiimport planetsize.txt
• dlmread('filename','<delimiter>')Example:>> planets2 = dlmread('planets2.txt', ';')
• load'filename'Example:>> load 'planets3.txt'
Impor7ngData
• xlsread:ReadfilesfromExcelExample:>> planets6 = xlsread('planets6.xls')
• imread:Readgraphicsfile(severalformats)Example:>> planets7 = imread('planets7.jpg'); viewwith:>> imshow(planets7)
• Otherspecialreadfunc7ons– aviread[aviaudio/visualfiles]– textread[readfromtextfile]
– fscanf[readbyformat,similartoClanguagefunc7on]
Expor7ngData
• diary:textfileofcommandwindowoutput >> diary <filename.txt> …. >> diary off
• save:saveworkspaceobjectsortexttodisk>> save <filename>
• Binaryfile<filename>.mat
>> save <filename>.txt variablename –ascii -tabs • Textfile<filename>.txt• Matrixcolumnelementsseparatedbytabswith-tabs
Session2
• Matlabnota7on– Syntax– Opera7ons
• Surveyoffunc7onality– Func7ons,computa7ons– m‐files,programming– Simpleplo+ngprocedures
• AbrieflookatSimulink
MatlabNota7on
• Numericalvalues
– Sequenceofbase10digits• Binary,hexrepresenta7onsarecharacterstrings
– Periodasradixpointforfloa7ngpointnumbers
– Lowercaseeforpowerof10exponent
Example:>>x=123.456e‐07
→x=0.0000123456[not(123.456)*(2.71828,,,)‐7]
MatlabNota7on
• Complexnumbers– iandjini7allysettothesquarerootof‐1
Imaginaryparthasiorjappended
(1+1i)isasinglecomplexexpression
(1+1*i)isasumofoneandcurrentvalueofi
• Matrices– Rectangulararraysofelements
• Indexedbyrow,thenbycolumn
Example:>> A = [ a(1,1) a(1,2); a(2,1) a(2,2)]
MatlabNota7on
• Booleanlogicals(Bernoullivariables)– TruthValues
1fortrue;0forfalse
– Primarylogicsymbols&logicalAND==logicalequal|logicalinclusiveOR~logicalNOT
– Compoundlogicsymbols<=>=~=xor(p,q)logicalexclusiveOR
Equivalentto(p&~q)|(~p&q)
MatlabNota7on
• Separatorsanddelimiters[]squarebrackets‐‐vectorandmatrixdelimiters{}curlybrackets‐‐celldelimiter()parentheses
• Groupingincompoundexpressions• Vectorandmatrixelementindices• Func7onargument
:colon‐‐indexrangeseparator;semicolon‐‐matrixrowseparator<space>matrixcolumnseparator,comma‐‐matrixindex,func7onargumentseparator‐‐rowvectorelementseparator''singlequotes‐‐demarca7onofcharacterstrings
MatlabOpera7ons
• Arithme7cOpera7ons–precedingperiod– Example–arithme7cmatrixmul7plica7on(.*)– Arithme7cOpera7onsareelementbyelement
a11a12a13b11b12b13c11c12c13
a21a22a23.*b21b22b23=c21c22c23a31a32a33b31b32b33c31c32c33
Note:c23=(a23*b23)
MatlabOpera7ons
• Matrix/Vectoropera7ons–noprecedingperiod– Example:matrixmul7plica7on(*)
– Innerproductof(lecsiderow)with(rightsidecolumn)
a11a12a13b11b12b13c11c12c13
a21a22a23*b21b22b23=c21c22c23a31a32a33b31b32b33c31c32c33
Note:c23=(a21*b13)+(a22*b23)+(a23*b33)
MatlabOpera7ons
• Valueassignmentopera7on=assignsavaluetotheantecedent<return>acerexpressionassignsvaluetoans
• Unarymatrixandelementopera7ons.'Matrixtranspose
– Rowsandcolumnsreversedwithsameordering
'Matrixcomplextranspose– Signsofimaginarypartsofelementsreversed
.^Raisingmatrixelementstoapower^Raisingamatrixtoapower
MatlabOpera7ons
• Binarymatrixandelementopera7ons+matrixorelementaddi7on‐matrixorelementsubtrac7on.*elementbyelementmul7plica7on*matrixmul7plica7on./elementbyelementdivision/rightmatrixdivision
• sameasrightmul7plica7onbydivisorinverse
\lecmatrixdivision• Sameaslecmul7plica7onbydivisorinverse
SurveyofMatlabFunc7onality
Computa7onandProgramming GraphicsandDataVisualiza7on Introduc7ontoSimulink
Compu7ngandProgramming
• Computa7ons– Combina7onsofelementaryopera7ons
– Built‐inconstants• Scalars:pi(numericalπ);i,j(√‐1)
• Matrices:zeros(m,n);ones(m,n);eye(m,n)
– Built‐infunc7ons• Numerical:sin;cos;exp;log
• Logical:isprime;isreal
Compu7ngandProgramming
• Batchcommands(macros)canbeputinscripts
• Scriptsarecreatedintheeditorwindow File>New>M‐File
• Scriptsaresavedinm‐fileswitha‘.m’extension
• Codeissequen7allis7ngofcommandsSameasstepbystepinthecommandwindow
Compu7ngandProgramming
• Elementaryflowcontrolinscripts
– Condi7onalif..elseif..[elseif..elseif..]else
– Loopfor
– Condi7onalLoopwhile
Compu7ngandProgramming
• ifcommand
if{condi=on}commandblock;elseif{condi=on}commandblock;
…
elseif{condi=on}commandblock;
elsecommandblock;end;
Compu7ngandProgramming
• forloop
for{indexrange}commandblock;end;
• whilecondi7onalloop
while{condi=on}commandblock;end;
Compu7ngandProgramming
• OpenanewM‐filefromFile‐>New
• Createsomenewobjectsinyourcode– Ascalarfromafunc7on,e.g.,x=exp(1);– Aarowvectorrange,e.g.,g=[0:1:100];– Afunc7onvector,e.g.,h=sin(g./10);– A3x3func7onmatrix,
• e.g.,J=log([111213;141516;171819]);– Aflowcontrolstructure
• e.g.,ifelementofhisposi7vesquareitsvalueotherwisecubeitsvalue
• SavetheM‐file,e.g.,asmyfile.m
• RunmyfileintheCommandWindow
Compu7ngandProgramming
• Convertyourfunc7onrowvectortoacolumn• Example:>> k = h.'
• Makeacompoundexpression• Example:>>m = x + x.^3 - log(x)
• Operateonamatrix:• Example:>>N=inv(J)%producestheinverseofthematrix
GraphicsandDataVisualiza7on
• Makea2‐Dplot– Example:plot(g,h)
– Customizeplotbyedi7nginFigureWindow• Changeaxisproperty• Changelinestyleandcolor• Changebackgroundcolor• Addaxislabelsand7tle
GraphicsandDataVisualiza7on
• Makea3‐Dlineplot– Create3same‐lengthvectors,e.g.,
>>p = [0:0.1:10];%rangevector>> q = p./2;%samelengthrangevector>> r = sin(p).*cos(q);%func=onvector
– Plotthe3‐Dcurve–Example:>> plot3(p,q,r)
– Rotatethecurvein3‐Dusingtoolbaricon
GraphicsandDataVisualiza7on
• Makea3‐Dsurfaceplot– Createamatrixoffunc7onvalues
Example:>> S = (sin(p))'*(cos(q));
– Plotasurfaceofmatrixvalues>> surf(S)%polygonalfacets>> mesh(S)%wiremesh
– Rotatetheplotin3‐Dusingtoolbaricon
Introduc7ontoSimulink
• Asimula7ontoolfordynamicsystems
• SimulinklibraryBrowser:– Collec7onofsources,systemmodules,sinks
System Input Output
Introduc7ontoSimulink
• Openanewmodelwindow– ExpandSimulinkonMatlabStartbu[on– SelectLibraryBrowser– ClickonNewModelicon(upperlec)
• Draginsources,operators,andsinks– Chooseasource,e.g.,SineWave
• Editaparameter,e.g.,Amplitude
– Chooseasink,e.g.,Scope– Chooseanoperator,e.g.,ConZnuous‐>DerivaZve
Introduc7ontoSimulink
• Connectthemodelcomponents– Arrowsfromsourcestooperators• Outputfromonesourcecanbeinputforanother
– Arrowsfromoutputstosinks(e.g.,scopes)
• Runthesimula7on– OpenScopewindows– ClickontheRunicon– Observethescopedisplay
ThanksforComing
• Addi7onalSSCMatlabShortCourses
– MatlabII‐‐Compu7ngandProgramming• Tutorialsec7ons5and6
• TutorialsOnline– h[p://ssc.utexas.edu/socware/socware‐tutorials#matlab
Survey
h[ps://www.surveymonkey.com/s/LRJ6WJK
Top Related