The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The...

553
Computation Visualization Programming MATLAB Function Reference Version 6 MATLAB ® The Language of Technical Computing

Transcript of The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The...

Page 1: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Computation

Visualization

Programming

MATLAB Function Reference

Version 6

MATLAB®

The Language of Technical Computing

Page 2: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

How to Contact The MathWorks:

508-647-7000 Phone

508-647-7001 Fax

The MathWorks, Inc. Mail3 Apple Hill DriveNatick, MA 01760-2098

http://www.mathworks.com Webftp.mathworks.com Anonymous FTP servercomp.soft-sys.matlab Newsgroup

[email protected] Technical [email protected] Product enhancement [email protected] Bug [email protected] Documentation error [email protected] Subscribing user [email protected] Order status, license renewals, [email protected] Sales, pricing, and general information

MATLAB Function Reference COPYRIGHT 1984 - 2000 by The MathWorks, Inc.The software described in this document is furnished under a license agreement. The software may be usedor copied only under the terms of the license agreement. No part of this manual may be photocopied or repro-duced in any form without prior written consent from The MathWorks, Inc.

FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation byor for the federal government of the United States. By accepting delivery of the Program, the governmenthereby agrees that this software qualifies as "commercial" computer software within the meaning of FARPart 12.212, DFARS Part 227.7202-1, DFARS Part 227.7202-3, DFARS Part 252.227-7013, and DFARS Part252.227-7014. The terms and conditions of The MathWorks, Inc. Software License Agreement shall pertainto the government’s use and disclosure of the Program and Documentation, and shall supersede anyconflicting contractual terms or conditions. If this license fails to meet the government’s minimum needs oris inconsistent in any respect with federal procurement law, the government agrees to return the Programand Documentation, unused, to MathWorks.

MATLAB, Simulink, Stateflow, Handle Graphics, and Real-Time Workshop are registered trademarks, andTarget Language Compiler is a trademark of The MathWorks, Inc.

Other product or brand names are trademarks or registered trademarks of their respective holders.

Printing History: December 1996 First printing New for MATLAB 5.0 (Release 10)June 1997 Revised for 5.1 Online version, MATLAB 5.1October 1997 Revised for 5.2 Online version, MATLAB 5.2January 1999 Revised for 5.3 Online version (Release 11)June 1999 Second printing MATLAB 5.3 (Release 11)November 2000 Revised for 6.0 Online version (Release 12)

Page 3: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Contents

1Functions by Category

General Purpose Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

Operators and Special Characters . . . . . . . . . . . . . . . . . . . . . . . xi

Logical Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

Language Constructs and Debugging . . . . . . . . . . . . . . . . . . . xiii

Elementary Matrices and Matrix Manipulation . . . . . . . . . . . xv

Specialized Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii

Elementary Math Functions . . . . . . . . . . . . . . . . . . . . . . . . . . xviii

Specialized Math Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

Coordinate System Conversion . . . . . . . . . . . . . . . . . . . . . . . . . xx

Matrix Functions - Numerical Linear Algebra . . . . . . . . . . . xxi

Data Analysis and Fourier Transform Functions . . . . . . . xxiii

Polynomial and Interpolation Functions . . . . . . . . . . . . . . . . xxv

Function Functions – Nonlinear Numerical Methods . . . . xxvi

Sparse Matrix Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii

Sound Processing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . xxix

Character String Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx

File I/O Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxii

iii

Page 4: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

iv Contents

Bitwise Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv

Structure Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv

MATLAB Object Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvi

MATLAB Interface to Java . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvii

Cell Array Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii

Multidimensional Array Functions . . . . . . . . . . . . . . . . . . . xxxix

Plotting and Data Visualization . . . . . . . . . . . . . . . . . . . . . . . . . xl

Graphical User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvii

Serial Port I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlix

Volume 1 Reference

Index

Page 5: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

1

Functions by Category

Page 6: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

vi

This section lists MATLAB functions grouped by functional area.

General Purpose Commands

Operators and Special Characters

Logical Functions

Language Constructs and Debugging

Elementary Matrices and Matrix Manipulation

Specialized Matrices

Elementary Math Functions

Specialized Math Functions

Coordinate System Conversion

Matrix Functions - Numerical Linear Algebra

Data Analysis and Fourier Transform Functions

Polynomial and Interpolation Functions

Function Functions – Nonlinear Numerical Methods

Sparse Matrix Functions

Sound Processing Functions

Character String Functions

File I/O Functions

Bitwise Functions

Structure Functions

MATLAB Object Functions

MATLAB Interface to Java

Cell Array Functions

Page 7: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Multidimensional Array Functions

Plotting and Data Visualization

Graphical User Interface Creation

Serial Port I/O

vii

Page 8: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

vii

General Purpose Commands

Managing Commands and Functionsaddpath Add directories to MATLAB’s search pathdoc Display HTML documentation in Help browserdocopt Display location of help file directory for UNIX platformsgenpath Generate a path stringhelp Display M-file help for MATLAB functions in the Command Windowhelpbrowser Display Help browser for access to all MathWorks online helphelpdesk Display the Help browserhelpwin Display M-file help and provide access to M-file help for all functionslasterr Last error messagelastwarn Last warning messagelicense Show MATLAB license numberlookfor Search for specified keyword in all help entriespartialpath Partial pathnamepath Control MATLAB’s directory search pathpathtool Open the GUI for viewing and modifying MATLAB’s pathprofile Start the M-file profiler, a utility for debugging and optimizing codeprofreport Generate a profile reportrehash Refresh function and file system cachesrmpath Remove directories from MATLAB’s search pathsupport Open MathWorks Technical Support Web Pagetype List filever Display version information for MATLAB, Simulink, and toolboxesversion Get MATLAB version numberweb Point Help browser or Web browser at file or Web sitewhat List MATLAB-specific files in current directorywhatsnew Display README files for MATLAB and toolboxeswhich Locate functions and files

Managing Variables and the Workspaceclear Remove items from the workspacedisp Display text or arraylength Length of vectorload Retrieve variables from diskmemory Help for memory limitationsmlock Prevent M-file clearingmunlock Allow M-file clearingopenvar Open workspace variable in Array Editor, for graphical editingpack Consolidate workspace memory

i

Page 9: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

General Purpose Commands

save Save workspace variables on disksaveas Save figure or model using specified formatsize Array dimensionswho, whos List the variables in the workspaceworkspace Display the Workspace Browser, a GUI for managing the workspace

Controlling the Command Windowclc Clear Command Windowecho Echo M-files during executionformat Control the display format for outputhome Move cursor to upper left corner of Command Windowmore Control paged output for the Command Window

Working with Files and the Operating Environmentbeep Produce a beep soundcd Change working directorycheckin Check file into source control systemcheckout Check file out of source control systemcmopts Get name of source control system, and PVCS project filenamecopyfile Copy filecustomverctrlAllow custom source control systemdelete Delete files or graphics objectsdiary Save session to a disk filedir Display a directory listingdos Execute a DOS command and return the resultedit Edit an M-filefileparts Get filename partsfilebrowser Display Current Directory browser, for viewing filesfullfile Build full filename from partsinfo Display contact information or toolbox Readme filesinmem Functions in memoryls List directory on UNIXmatlabroot Get root directory of MATLAB installationmkdir Make new directoryopen Open files based on extensionpwd Display current directorytempdir Return the name of the system’s temporary directorytempname Unique name for temporary fileundocheckout Undo previous checkout from source control systemunix Execute a UNIX command and return the result! Execute operating system command

ix

Page 10: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

x

Starting and Quitting MATLABfinish MATLAB termination M-fileexit Terminate MATLABmatlab Start MATLAB (UNIX systems only)matlabrc MATLAB startup M-filequit Terminate MATLABstartup MATLAB startup M-file

Page 11: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Operators and Special Characters

Operators and Special Characters+ Plus- Minus* Matrix multiplication.* Array multiplication^ Matrix power.^ Array powerkron Kronecker tensor product\ Backslash or left division/ Slash or right division./ and .\ Array division, right and left: Colon( ) Parentheses[ ] Brackets{} Curly braces. Decimal point... Continuation, Comma; Semicolon% Comment! Exclamation point' Transpose and quote.' Nonconjugated transpose= Assignment== Equality< > Relational operators& Logical AND| Logical OR~ Logical NOTxor Logical EXCLUSIVE OR

xi

Page 12: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xii

Logical Functionsall Test to determine if all elements are nonzeroany Test for any nonzerosexist Check if a variable or file existsfind Find indices and values of nonzero elementsis* Detect stateisa Detect an object of a given classiskeyword Testif string is a MATLAB keywordisvarname Test if string is a valid variable namelogical Convert numeric values to logicalmislocked True if M-file cannot be cleared

Page 13: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Language Constructs and Debugging

Language Constructs and Debugging

MATLAB as a Programming Languagebuiltin Execute builtin function from overloaded methodeval Interpret strings containing MATLAB expressionsevalc Evaluate MATLAB expression with captureevalin Evaluate expression in workspacefeval Function evaluationfunction Function M-filesglobal Define global variablesnargchk Check number of input argumentspersistent Define persistent variablescript Script M-files

Control Flowbreak Terminate execution offor loop orwhile loopcase Case switchcatch Begin catch blockcontinue Pass control to the next iteration offor or while loopelse Conditionally execute statementselseif Conditionally execute statementsend Terminatefor, while, switch, try, andif statements or indicate last

indexerror Display error messagesfor Repeat statements a specific number of timesif Conditionally execute statementsotherwise Default part ofswitch statementreturn Return to the invoking functionswitch Switch among several cases based on expressiontry Begintry blockwarning Display warning messagewhile Repeat statements an indefinite number of times

Interactive Inputinput Request user inputkeyboard Invoke the keyboard in an M-filemenu Generate a menu of choices for user inputpause Halt execution temporarily

xiii

Page 14: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xiv

Object-Oriented Programmingclass Create object or return class of objectdouble Convert to double precisioninferiorto Inferior class relationshipinline Construct an inline objectint8, int16, int32

Convert to signed integerisa Detect an object of a given classloadobj Extends theload function for user objectssaveobj Save filter for objectssingle Convert to single precisionsuperiorto Superior class relationshipuint8, uint16, uint32

Convert to unsigned integer

Debuggingdbclear Clear breakpointsdbcont Resume executiondbdown Change local workspace contextdbmex Enable MEX-file debuggingdbquit Quit debug modedbstack Display function call stackdbstatus List all breakpointsdbstep Execute one or more lines from a breakpointdbstop Set breakpoints in an M-file functiondbtype List M-file with line numbersdbup Change local workspace context

Function Handlesfunction_handle

MATLAB data type that is a handle to a functionfunctions Return information about a function handlefunc2str Constructs a function name string from a function handlestr2func Constructs a function handle from a function name string

Page 15: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Elementary Matrices and Matrix Manipulation

Elementary Matrices and Matrix Manipulation

Elementary Matrices and Arraysblkdiag Construct a block diagonal matrix from input argumentseye Identity matrixlinspace Generate linearly spaced vectorslogspace Generate logarithmically spaced vectorsnumel Number of elements in a matrix or cell arrayones Create an array of all onesrand Uniformly distributed random numbers and arraysrandn Normally distributed random numbers and arrayszeros Create an array of all zeros: (colon) Regularly spaced vector

Special Variables and Constantsans The most recent answercomputer Identify the computer on which MATLAB is runningeps Floating-point relative accuracyi Imaginary unitInf Infinityinputname Input argument namej Imaginary unitNaN Not-a-Numbernargin, nargout

Number of function argumentsnargoutchk Validate number of output argumentspi Ratio of a circle’s circumference to its diameter,πrealmax Largest positive floating-point numberrealmin Smallest positive floating-point numbervarargin, varargout

Pass or return variable numbers of arguments

Time and Datescalendar Calendarclock Current time as a date vectorcputime Elapsed CPU timedate Current date stringdatenum Serial date numberdatestr Date string formatdatevec Date components

xv

Page 16: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xv

eomday End of monthetime Elapsed timenow Current date and timetic, toc Stopwatch timerweekday Day of the week

Matrix Manipulationcat Concatenate arraysdiag Diagonal matrices and diagonals of a matrixfliplr Flip matrices left-rightflipud Flip matrices up-downrepmat Replicate and tile an arrayreshape Reshape arrayrot90 Rotate matrix 90 degreestril Lower triangular part of a matrixtriu Upper triangular part of a matrix: (colon) Index into array, rearrange array

Vector Functionscross Vector cross productdot Vector dot productintersect Set intersection of two vectorsismember Detect members of a setsetdiff Return the set difference of two vectorsetxor Set exclusive or of two vectorsunion Set union of two vectorsunique Unique elements of a vector

i

Page 17: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Specialized Matrices

Specialized Matricescompan Companion matrixgallery Test matriceshadamard Hadamard matrixhankel Hankel matrixhilb Hilbert matrixinvhilb Inverse of the Hilbert matrixmagic Magic squarepascal Pascal matrixtoeplitz Toeplitz matrixwilkinson Wilkinson’s eigenvalue test matrix

xvii

Page 18: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xv

nd

Elementary Math Functionsabs Absolute value and complex magnitudeacos, acosh Inverse cosine and inverse hyperbolic cosineacot, acoth Inverse cotangent and inverse hyperbolic cotangentacsc, acsch Inverse cosecant and inverse hyperbolic cosecantangle Phase angleasec, asech Inverse secant and inverse hyperbolic secantasin, asinh Inverse sine and inverse hyperbolic sineatan, atanh Inverse tangent and inverse hyperbolic tangentatan2 Four-quadrant inverse tangentceil Round toward infinitycomplex Construct complex data from real and imaginary componentsconj Complex conjugatecos, cosh Cosine and hyperbolic cosinecot, coth Cotangent and hyperbolic cotangentcsc, csch Cosecant and hyperbolic cosecantexp Exponentialfix Round towards zerofloor Round towards minus infinitygcd Greatest common divisorimag Imaginary part of a complex numberlcm Least common multiplelog Natural logarithmlog2 Base 2 logarithm and dissect floating-point numbers into exponent a

mantissalog10 Common (base 10) logarithmmod Modulus (signed remainder after division)nchoosek Binomial coefficient or all combinationsreal Real part of complex numberrem Remainder after divisionround Round to nearest integersec, sech Secant and hyperbolic secantsign Signum functionsin, sinh Sine and hyperbolic sinesqrt Square roottan, tanh Tangent and hyperbolic tangent

iii

Page 19: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Specialized Math Functions

Specialized Math Functionsairy Airy functionsbesselh Bessel functions of the third kind (Hankel functions)besseli, besselk

Modified Bessel functionsbesselj, bessely

Bessel functionsbeta, betainc, betaln

Beta functionsellipj Jacobi elliptic functionsellipke Complete elliptic integrals of the first and second kinderf, erfc, erfcx, erfinv

Error functionsexpint Exponential integralfactorial Factorial functiongamma, gammainc, gammaln

Gamma functionslegendre Associated Legendre functionspow2 Base 2 power and scale floating-point numbersrat, rats Rational fraction approximation

xix

Page 20: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

Coordinate System Conversioncart2pol Transform Cartesian coordinates to polar or cylindricalcart2sph Transform Cartesian coordinates to sphericalpol2cart Transform polar or cylindrical coordinates to Cartesiansph2cart Transform spherical coordinates to Cartesian

Page 21: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Matrix Functions - Numerical Linear Algebra

Matrix Functions - Numerical Linear Algebra

Matrix Analysiscond Condition number with respect to inversioncondeig Condition number with respect to eigenvaluesdet Matrix determinantnorm Vector and matrix normsnull Null space of a matrixorth Range space of a matrixrank Rank of a matrix7rcond Matrix reciprocal condition number estimaterref, rrefmovie

Reduced row echelon formsubspace Angle between two subspacestrace Sum of diagonal elements

Linear Equationschol Cholesky factorizationinv Matrix inverselscov Least squares solution in the presence of known covariancelu LU matrix factorizationlsqnonneg Nonnegative least squaresminres Minimum Residual Methodpinv Moore-Penrose pseudoinverse of a matrixqr Orthogonal-triangular decompositionsymmlq Symmetric LQ method

Eigenvalues and Singular Valuesbalance Improve accuracy of computed eigenvaluescdf2rdf Convert complex diagonal form to real block diagonal formeig Eigenvalues and eigenvectorsgsvd Generalized singular value decompositionhess Hessenberg form of a matrixpoly Polynomial with specified rootsqz QZ factorization for generalized eigenvaluesrsf2csf Convert real Schur form to complex Schur formschur Schur decompositionsvd Singular value decomposition

xxi

Page 22: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

Matrix Functionsexpm Matrix exponentialfunm Evaluate general matrix functionlogm Matrix logarithmsqrtm Matrix square root

Low Level Functionsqrdelete Delete column from QR factorizationqrinsert Insert column in QR factorization

ii

Page 23: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Data Analysis and Fourier Transform Functions

Data Analysis and Fourier Transform Functions

Basic Operationscumprod Cumulative productcumsum Cumulative sumcumtrapz Cumulative trapezoidal numerical integrationfactor Prime factorsinpolygon Detect points inside a polygonal regionmax Maximum elements of an arraymean Average or mean value of arraysmedian Median value of arraysmin Minimum elements of an arrayperms All possible permutationspolyarea Area of polygonprimes Generate list of prime numbersprod Product of array elementsrectint Rectangle intersection Areasort Sort elements in ascending ordersortrows Sort rows in ascending orderstd Standard deviationsum Sum of array elementstrapz Trapezoidal numerical integrationvar Variance

Finite Differencesdel2 Discrete Laplaciandiff Differences and approximate derivativesgradient Numerical gradient

Correlationcorrcoef Correlation coefficientscov Covariance matrix

Filtering and Convolutionconv Convolution and polynomial multiplicationconv2 Two-dimensional convolutiondeconv Deconvolution and polynomial divisionfilter Filter data with an infinite impulse response (IIR) or finite impulse

response (FIR) filter

xxiii

Page 24: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

filter2 Two-dimensional digital filtering

Fourier Transformsabs Absolute value and complex magnitudeangle Phase anglecplxpair Sort complex numbers into complex conjugate pairsfft One-dimensional fast Fourier transformfft2 Two-dimensional fast Fourier transformfftshift Shift DC component of fast Fourier transform to center of spectrumifft Inverse one-dimensional fast Fourier transformifft2 Inverse two-dimensional fast Fourier transformifftn Inverse multidimensional fast Fourier transformifftshift Inverse FFT shiftnextpow2 Next power of twounwrap Correct phase angles

iv

Page 25: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Polynomial and Interpolation Functions

nts

Polynomial and Interpolation Functions

Polynomialsconv Convolution and polynomial multiplicationdeconv Deconvolution and polynomial divisionpoly Polynomial with specified rootspolyder Polynomial derivativepolyeig Polynomial eigenvalue problempolyfit Polynomial curve fittingpolyint Analytic polynomial integrationpolyval Polynomial evaluationpolyvalm Matrix polynomial evaluationresidue Convert between partial fraction expansion and polynomial coefficieroots Polynomial roots

Data Interpolationconvhull Convex hullconvhulln Multidimensional convex hulldelaunay Delaunay triangulationdelaunay3 Three-dimensionalDelaunay tessellationdelaunayn Multidimensional Delaunay tessellationdsearch Search for nearest pointdsearchn Multidimensional closest point searchgriddata Data griddinggriddata3 Data gridding and hypersurface fitting for three-dimensional

datagriddatan Data gridding and hypersurface fitting (dimension >= 2)interp1 One-dimensional data interpolation (table lookup)interp2 Two-dimensional data interpolation (table lookup)interp3 Three-dimensional data interpolation (table lookup)interpft One-dimensional interpolation using the FFT methodinterpn Multidimensional data interpolation (table lookup)meshgrid Generate X and Y matrices for three-dimensional plotsndgrid Generate arrays for multidimensional functions and interpolationpchip Piecewise Cubic Hermite Interpolating Polynomial (PCHIP)ppval Piecewise polynomial evaluationspline Cubic spline data interpolationtsearch Search for enclosing Delaunay triangletsearchn Multidimensional closest simplex searchvoronoi Voronoi diagramvoronoin Multidimensional Voronoi diagrams

xxv

Page 26: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

Function Functions – Nonlinear Numerical Methodsbvp4c Solve two-point boundry value problems (BVPs) for

ordinary differential equations (ODEs)bvpget Extract parameters from BVP options structurebvpinit Form the initial guess forbvp4cbvpset Create/alter BVP options structurebvpval Evaluate the solution computed bybvp4cdblquad Numerical evaluation of double integralsfminbnd Minimize a function of one variablefminsearch Minimize a function of several variablesfzero Find zero of a function of one variableode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb

Solve initial value problems for ODEsodeget Extract parameters from ODE options structureodeset Create/alter ODE options structureoptimget Get optimization options structure parameter valuesoptimset Create or edit optimization options parameter structurepdepe Solve initial-boundary value problemspdeval Evaluate the solution computed by pdepequad Numerical evaluation of integrals, adaptive Simpson quadraturequadl Numerical evaluation of integrals, adaptive Lobatto quadraturevectorize Vectorize expression

vi

Page 27: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Sparse Matrix Functions

Sparse Matrix Functions

Elementary Sparse Matricesspdiags Extract and create sparse band and diagonal matricesspeye Sparse identity matrixsprand Sparse uniformly distributed random matrixsprandn Sparse normally distributed random matrixsprandsym Sparse symmetric random matrix

Full to Sparse Conversionfind Find indices and values of nonzero elementsfull Convert sparse matrix to full matrixsparse Create sparse matrixspconvert Import matrix from sparse matrix external format

Working with Nonzero Entries of Sparse Matricesnnz Number of nonzero matrix elementsnonzeros Nonzero matrix elementsnzmax Amount of storage allocated for nonzero matrix elementsspalloc Allocate space for sparse matrixspfun Apply function to nonzero sparse matrix elementsspones Replace nonzero sparse matrix elements with ones

Visualizing Sparse Matricesspy Visualize sparsity pattern

Reordering Algorithmscolamd Column approximate minimum degree permutationcolmmd Sparse column minimum degree permutationcolperm Sparse column permutation based on nonzero countdmperm Dulmage-Mendelsohn decompositionrandperm Random permutationsymamd Symmetric approximate minimum degree permutationsymmmd Sparse symmetric minimum degree orderingsymrcm Sparse reverse Cuthill-McKee ordering

xxvii

Page 28: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

ns

Norm, Condition Number, and Rankcondest 1-norm matrix condition number estimatenormest 2-norm estimate

Sparse Systems of Linear Equationsbicg BiConjugate Gradients methodbicgstab BiConjugate Gradients Stabilized methodcgs Conjugate Gradients Squared methodcholinc Sparse Incomplete Cholesky and Cholesky-Infinity factorizationscholupdate Rank 1 update to Cholesky factorizationgmres Generalized Minimum Residual method (with restarts)lsqr LSQR implementation of Conjugate Gradients on the normal equatioluinc Incomplete LU matrix factorizationspcg Preconditioned Conjugate Gradients methodqmr Quasi-Minimal Residual methodqr Orthogonal-triangular decompositionqrdelete Delete column from QR factorizationqrinsert Insert column in QR factorizationqrupdate Rank 1 update to QR factorization

Sparse Eigenvalues and Singular Valueseigs Find eigenvalues and eigenvectorssvds Find singular values

Miscellaneousspparms Set parameters for sparse matrix routines

viii

Page 29: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Sound Processing Functions

Sound Processing Functions

General Sound Functionslin2mu Convert linear audio signal to mu-lawmu2lin Convert mu-law audio signal to linearsound Convert vector into soundsoundsc Scale data and play as sound

SPARCstation-Specific Sound Functionsauread Read NeXT/SUN (.au) sound fileauwrite Write NeXT/SUN (.au) sound file

.WAV Sound Functionswavplay Play recorded sound on a PC-based audio output devicewavread Read Microsoft WAVE (.wav) sound filewavrecord Record sound using a PC-based audio input devicewavwrite Write Microsoft WAVE (.wav) sound file

xxix

Page 30: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

Character String Functions

Generalabs Absolute value and complex magnitudeeval Interpret strings containing MATLAB expressionsreal Real part of complex numberstrings MATLAB string handling

String to Function Handle Conversionfunc2str Constructs a function name string from a function handlestr2func Constructs a function handle from a function name string

String Manipulationdeblank Strip trailing blanks from the end of a stringfindstr Find one string within anotherlower Convert string to lower casestrcat String concatenationstrcmp Compare stringsstrcmpi Compare strings, ignoring casestrjust Justify a character arraystrmatch Find possible matches for a stringstrncmp Compare the firstn characters of stringsstrncmpi Compare the firstn characters of strings, ignoring casestrrep String search and replacestrtok First token in stringstrvcat Vertical concatenation of stringssymvar Determine symbolic variables in an expressiontexlabel Produce the TeX format from a character stringupper Convert string to upper case

String to Number Conversionchar Create character array (string)int2str Integer to string conversionmat2str Convert a matrix into a stringnum2str Number to string conversionsprintf Write formatted data to a stringsscanf Read string under format controlstr2double Convert string to double-precision valuestr2mat String to matrix conversion

x

Page 31: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Character String Functions

str2num String to number conversion

Radix Conversionbin2dec Binary to decimal number conversiondec2bin Decimal to binary number conversiondec2hex Decimal to hexadecimal number conversionhex2dec Hexadecimal to decimal number conversionhex2num Hexadecimal to double number conversion

xxxi

Page 32: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

File I/O Functions

File Opening and Closingfclose Close one or more open filesfopen Open a file or obtain information about open files

Unformatted I/Ofread Read binary data from filefwrite Write binary data to a file

Formatted I/Ofgetl 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 filefscanf Read formatted data from file

File Positioningfeof Test for end-of-fileferror Query MATLAB about errors in file input or outputfrewind Rewind an open filefseek Set file position indicatorftell Get file position indicator

String Conversionsprintf Write formatted data to a stringsscanf Read string under format control

Specialized File I/Odlmread Read an ASCII delimited file into a matrixdlmwrite Write a matrix to an ASCII delimited filehdf HDF interfaceimfinfo Return information about a graphics fileimread Read image from graphics fileimwrite Write an image to a graphics filestrread Read formatted data from a stringtextread Read formatted data from text filewk1read Read a Lotus123 WK1 spreadsheet file into a matrix

xii

Page 33: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

File I/O Functions

wk1write Write a matrix to a Lotus123 WK1 spreadsheet file

xxxiii

Page 34: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

Bitwise Functionsbitand Bit-wise ANDbitcmp Complement bitsbitor Bit-wise ORbitmax Maximum floating-point integerbitset Set bitbitshift Bit-wise shiftbitget Get bitbitxor Bit-wise XOR

xiv

Page 35: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Structure Functions

Structure Functionsfieldnames Field names of a structuregetfield Get field of structure arrayrmfield Remove structure fieldssetfield Set field of structure arraystruct Create structure arraystruct2cell Structure to cell array conversion

xxxv

Page 36: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

MATLAB Object Functionsclass Create object or return class of objectisa Detect an object of a given classmethods Display method namesmethodsview Displays information on all methods implemented by a classsubsasgn Overloaded method for A(I)=B, A{I}=B, and A.field=Bsubsindex Overloaded method for X(A)subsref Overloaded method for A(I), A{I} and A.field

xvi

Page 37: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

MATLAB Interface to Java

MATLAB Interface to Javaclass Create object or return class of objectimport Add a package or class to the current Java import listisa Detect an object of a given classisjava Test whether an object is a Java objectjavaArray Constructs a Java arrayjavaMethod Invokes a Java methodjavaObject Constructs a Java objectmethods Display method namesmethodsview Displays information on all methods implemented by a class

xxxvii

Page 38: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xx

Cell Array Functionscell Create cell arraycellfun Apply a function to each element in a cell arraycellstr Create cell array of strings from character arraycell2struct Cell array to structure array conversioncelldisp Display cell array contentscellplot Graphically display the structure of cell arraysnum2cell Convert a numeric array into a cell array

xviii

Page 39: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Multidimensional Array Functions

Multidimensional Array Functionscat Concatenate arraysflipdim Flip array along a specified dimensionind2sub Subscripts from linear indexipermute Inverse permute the dimensions of a multidimensional arrayndgrid Generate arrays for multidimensional functions and interpolationndims Number of array dimensionspermute Rearrange the dimensions of a multidimensional arrayreshape Reshape arrayshiftdim Shift dimensionssqueeze Remove singleton dimensionssub2ind Single index from subscripts

xxxix

Page 40: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xl

Plotting and Data Visualization

Basic Plots and Graphsbar Vertical bar chartbarh Horizontal bar charthist Plot histogramshistc Histogram counthold Hold current graphloglog Plot using log-log scalespie Pie plotplot Plot vectors or matrices.polar Polar coordinate plotsemilogx Semi-log scale plotsemilogy Semi-log scale plotsubplot Create axes in tiled positions

Three-Dimensional Plottingbar3 Vertical 3-D bar chartbar3h Horizontal 3-D bar chartcomet3 3-D comet plotcylinder Generate cylinderfill3 Draw filled 3-D polygons in 3-spaceplot3 Plot lines and points in 3-D spacequiver3 3-D quiver (or velocity) plotslice Volumetric slice plotsphere Generate spherestem3 Plot discrete surface datawaterfall Waterfall plot

Plot Annotation and Gridsclabel Add contour labels to a contour plotdatetick Date formatted tick labelsgrid Grid lines for 2-D and 3-D plotsgtext Place text on a 2-D graph using a mouselegend Graph legend for lines and patchesplotyy Plot graphs with Y tick labels on the left and righttitle Titles for 2-D and 3-D plotsxlabel X-axis labels for 2-D and 3-D plotsylabel Y-axis labels for 2-D and 3-D plotszlabel Z-axis labels for 3-D plots

Page 41: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Plotting and Data Visualization

Surface, Mesh, and Contour Plotscontour Contour (level curves) plotcontourc Contour computationcontourf Filled contour plothidden Mesh hidden line removal modemeshc Combination mesh/contourplotmesh 3-D mesh with reference planepeaks A sample function of two variablessurf 3-D shaded surface graphsurface Create surface low-level objectssurfc Combination surf/contourplotsurfl 3-D shaded surface with lightingtrimesh Triangular mesh plottrisurf Triangular surface plot

Volume Visualizationconeplot Plot velocity vectors as cones in 3-D vector fieldcontourslice Draw contours in volume slice planecurl Compute the curl and angular velocity of a vector fielddivergence Compute the divergence of a vector fieldflow Generate scalar volume datainterpstreamspeedInterpolate streamline vertices from vector-field magnitudesisocaps Compute isosurface end-cap geometryisocolors Compute the colors of isosurface verticesisonormals Compute normals of isosurface verticesisosurface Extract isosurface data from volume datareducepatch Reduce the number of patch facesreducevolume Reduce number of elements in volume data setshrinkfaces Reduce the size of patch facesslice Draw slice planes in volumesmooth3 Smooth 3-D datastream2 Compute 2-D stream line datastream3 Compute 3-D stream line datastreamline Draw stream lines from 2- or 3-D vector datastreamparticlesDraws stream particles from vector volume datastreamribbon Draws stream ribbons from vector volume datastreamslice Draws well-spaced stream lines from vector volume datastreamtube Draws stream tubes from vector volume datasurf2patch Convert srface data to patch datasubvolume Extract subset of volume data setvolumebounds Return coordinate and color limits for volume (scalar and vector)

xli

Page 42: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xli

Domain Generationgriddata Data gridding and surface fittingmeshgrid Generation of X and Y arrays for 3-D plots

Specialized Plottingarea Area plotbox Axis box for 2-D and 3-D plotscomet Comet plotcompass Compass ploterrorbar Plot graph with error barsezcontour Easy to use contour plotterezcontourf Easy to use filled contour plotterezmesh Easy to use 3-D mesh plotterezmeshc Easy to use combination mesh/contour plotterezplot Easy to use function plotterezplot3 Easy to use 3-D parametric curve plotterezpolar Easy to use polar coordinate plotterezsurf Easy to use 3-D colored surface plotterezsurfc Easy to use combination surface/contour plotterfeather Feather plotfill Draw filled 2-D polygonsfplot Plot a functionpareto Pareto charpie3 3-D pie plotplotmatrix Scatter plot matrixpcolor Pseudocolor (checkerboard) plotrose Plot rose or angle histogramquiver Quiver (or velocity) plotribbon Ribbon plotstairs Stairstep graphscatter Scatter plotscatter3 3-D scatter plotstem Plot discrete sequence dataconvhull Convex hulldelaunay Delaunay triangulationdsearch Search Delaunay triangulation for nearest pointinpolygon True for points inside a polygonal regionpolyarea Area of polygontsearch Search for enclosing Delaunay trianglevoronoi Voronoi diagram

i

Page 43: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Plotting and Data Visualization

View Controlcamdolly Move camera position and targetcamlookat View specific objectscamorbit Orbit about camera targetcampan Rotate camera target about camera positioncampos Set or get camera positioncamproj Set or get projection typecamroll Rotate camera about viewing axiscamtarget Set or get camera targetcamup Set or get camera up-vectorcamva Set or get camera view anglecamzoom Zoom camera in or outdaspect Set or get data aspect ratiopbaspect Set or get plot box aspect ratioview 3-D graph viewpoint specification.viewmtx Generate view transformation matricesxlim Set or get the currentx-axis limitsylim Set or get the currenty-axis limitszlim Set or get the currentz-axis limits

Lightingcamlight Cerate or position Lightlight Light object creation functionlighting Lighting modelightangle Position light in sphereical coordinatesmaterial Material reflectance mode

Transparencyalpha Set or query transparency properties for objects in current axesalphamap Specify the figure alphamapalim Set or query the axes alpha limits

Color Operationsbrighten Brighten or darken color mapcaxis Pseudocolor axis scalingcolorbar Display color bar (color scale)colordef Set up color defaultscolormap Set the color look-up table (list of colormaps)graymon Graphics figure defaults set for grayscale monitorhsv2rgb Hue-saturation-value to red-green-blue conversion

xliii

Page 44: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xli

rgb2hsv RGB to HSVconversionrgbplot Plot color mapshading Color shading modespinmap Spin the colormapsurfnorm 3-D surface normalswhitebg Change axes background color for plots

Colormapsautumn Shades of red and yellow color mapbone Gray-scale with a tinge of blue color mapcontrast Gray color map to enhance image contrastcool Shades of cyan and magenta color mapcopper Linear copper-tone color mapflag Alternating red, white, blue, and black color mapgray Linear gray-scale color maphot Black-red-yellow-white color maphsv Hue-saturation-value (HSV) color mapjet Variant of HSVlines Line color colormapprism Colormap of prism colorsspring Shades of magenta and yellow color mapsummer Shades of green and yellow colormapwinter Shades of blue and green color map

Printingorient Hardcopy paper orientationpagesetupdlg Page position dialog boxprint Print graph or save graph to fileprintdlg Print dialog boxprintopt Configure local printer defaultssaveas Save figure to graphic file

Handle Graphics, Generalallchild Find all children of specified objectscopyobj Make a copy of a graphics object and its childrenfindall Find all graphics objects (including hidden handles)findobj Find objects with specified property valuesgcbo Return object whose callback is currently executinggco Return handle of current objectget Get object properties

v

Page 45: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Plotting and Data Visualization

rotate Rotate objects about specified origin and directionishandle True for graphics objectsset Set object properties

Working with Application Datagetappdata Get value of application dataisappdata True if application data existsrmappdata Remove application datasetappdata Specify application data

Handle Graphics, Object Creationaxes Create Axes objectfigure Create Figure (graph) windowsimage Create Image (2-D matrix)light Create Light object (illuminates Patch and Surface)line Create Line object (3-D polylines)patch Create Patch object (polygons)rectangle Create Rectangle object (2-D rectangle)surface Create Surface (quadrilaterals)text Create Text object (character strings)uicontextmenuCreate context menu (popup associated with object)

Handle Graphics, Figure Windowscapture Screen capture of the current figureclc Clear figure windowclf Clear figureclose Close specified windowclosereq Default close request functiongcf Get current figure handlenewplot Graphics M-file preamble forNextPlot propertyrefresh Refresh figuresaveas Save figure or model to desired output format

Handle Graphics, Axesaxis Plot axis scaling and appearancecla Clear Axesgca Get current Axes handle

xlv

Page 46: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xlv

Object Manipulationreset Reset axis or figurerotate3d Interactively rotate the view of a 3-D plotselectmoveresizeInteractively select, move, or resize objects

Interactive User Inputginput Graphical input from a mouse or cursorzoom Zoom in and out on a 2-D plot

Region of Interestdragrect Drag XOR rectangles with mousedrawnow Complete any pending drawingrbbox Rubberband box

i

Page 47: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Graphical User Interfaces

Graphical User Interfaces

Dialog Boxesdialog Create a dialog boxerrordlg Create error dialog boxhelpdlg Display help dialog boxinputdlg Create input dialog boxlistdlg Create list selection dialog boxmsgbox Create message dialog boxpagedlg Display page layout dialog boxprintdlg Display print dialog boxquestdlg Create question dialog boxuigetfile Display dialog box to retrieve name of file for readinguiputfile Display dialog box to retrieve name of file for writinguisetcolor Interactively set aColorSpec using a dialog boxuisetfont Interactively set a font using a dialog boxwarndlg Create warning dialog box

User Interface Deploymentguidata Store or retrieve application dataguihandles Create a structure of handlesmovegui Move GUI figure onscreenopenfig Open or raise GUI figure

User Interface Developmentguide Open the GUI Layout Editorinspect Display Property Inspector

User Interface Objectsmenu Generate a menu of choices for user inputuicontextmenuCreate context menuuicontrol Create user interface controluimenu Create user interface menu

Other Functionsdragrect Drag rectangles with mousefindfigs Display off-screen visible figure windowsgcbf Return handle of figure containing callback object

xlvii

Page 48: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

xlv

s

gcbo Return handle of object whose callback is executingrbbox Create rubberband box for area selectionselectmoveresizeSelect, move, resize, or copy Axes and Uicontrol graphics objecttextwrap Return wrapped string matrix for given Uicontroluiresume Used withuiwait, controls program executionuiwait Used withuiresume, controls program executionwaitbar Display wait barwaitforbuttonpressWait for key/buttonpress over figure

iii

Page 49: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Serial Port I/O

Serial Port I/O

Creating a Serial Port Objectserial Create a serial port object

Writing and Reading Datafgetl Read one line of text from the device and discard the

terminatorfgets Read one line of text from the device and include the

terminatorfprintf Write text to the devicefread Read binary data from the devicefscanf Read data from the device, and format as textfwrite Write binary data to the devicereadasync Read data asynchronously from the devicestopasync Stop asynchronous read and write operations

Configuring and Returning Propertiesget Return serial port object propertiesset Configure or display serial port object properties

State Changefclose Disconnect a serial port object from the devicefopen Connect a serial port object to the devicerecord Record data and event information to a file

General Purposeclear Remove a serial port object from the MATLAB workspacedelete Remove a serial port object from memorydisp Display serial port object summary informationinstraction Display event information when an event occursinstrfind Return serial port objects from memory to the MATLAB

workspaceisvalid Determine if serial port objects are validlength Length of serial port object arrayload Load serial port objects and variables into the MATLAB

workspacesave Save serial port objects and variables to a MAT-file

xlix

Page 50: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Functions by Category

l

serialbreak Send a break to the device connected to the serial portsize Size of serial port object array

Page 51: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Volume 1 Reference

Page 52: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Volume 1 Reference

2

This volume describes the MATLAB operators, special characters, commands,and functions listed alphabetically from A through E.

Please note that in the three volumes of the MATLAB Function Reference, operatorsand special characters are listed alphabetically according to these categories:

• Arithmetic Operators

• Colon

• Logical Operators

• Special Characters

• Relational Operators

Page 53: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

abs

1absPurpose Absolute value and complex magnitude

Syntax Y = abs(X)

Description abs(X) returns the absolute value, , for each element of X.

If X is complex, abs(X) returns the complex modulus (magnitude):

abs(X) = sqrt(real(X).^2 + imag(X).^2)

Examples abs(-5) = 5abs(3+4i) = 5

See Also angle, sign, unwrap

X

3

Page 54: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

acos, acosh

1acos, acoshPurpose Inverse cosine and inverse hyperbolic cosine

Syntax Y = acos(X)Y = acosh(X)

Description The acos and acosh functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = acos(X) returns the inverse cosine (arccosine) for each element of X. Forreal elements of X in the domain , acos(X) is real and in the range

. For real elements of X outside the domain , acos(X) is complex.

Y = acosh(X) returns the inverse hyperbolic cosine for each element of X.

Examples Graph the inverse cosine function over the domain and the inversehyperbolic cosine function over the domain

x = -1:.05:1; plot(x,acos(x))x = 1:pi/40:pi; plot(x,acosh(x))

Algorithm

See Also cos, cosh

1 1,–[ ]0 π,[ ] 1 1,–[ ]

1– x 1,≤ ≤1 x π.≤ ≤

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10

0.5

1

1.5

2

2.5

3

3.5

x

y=ac

os(x

)

1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

x

y=ac

osh(

x)

z( )cos 1– i z i 1 z 2–( )12---

+log–=

z( )cosh 1– z z 2 1–( )12---

+log=

4

Page 55: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

acot, acoth

1acot, acothPurpose Inverse cotangent and inverse hyperbolic cotangent

Syntax Y = acot(X)Y = acoth(X)

Description The acot and acoth functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = acot(X) returns the inverse cotangent (arccotangent) for each element of X.

Y = acoth(X) returns the inverse hyperbolic cotangent for each element of X.

Examples Graph the inverse cotangent over the domains and andthe inverse hyperbolic cotangent over the domains and

x1 = -2∗pi:pi/30:-0.1; x2 = 0.1:pi/30:2∗pi;plot(x1,acot(x1),x2,acot(x2))x1 = -30:0.1:-1.1; x2 = 1.1:0.1:30;plot(x1,acoth(x1),x2,acoth(x2))

Algorithm

See Also cot, coth

2π– x 0<≤ 0 x 2π,≤<30– x 1–<≤ 1 x 30.≤<

-8 -6 -4 -2 0 2 4 6 8-1.5

-1

-0.5

0

0.5

1

1.5

x1 x2

y=ac

ot(x

)

-30 -20 -10 0 10 20 30-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

x1,x2

y=ac

oth(

x)

z( )cot 1– 1z---

tan 1–=

z( )coth 1– 1z---

tanh 1–=

5

Page 56: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

acsc, acsch

1acsc, acschPurpose Inverse cosecant and inverse hyperbolic cosecant

Syntax Y = acsc(X)Y = acsch(X)

Description The acsc and acsch functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = acsc(X) returns the inverse cosecant (arccosecant) for each element of X.

Y = acsch(X) returns the inverse hyperbolic cosecant for each element of X.

Examples Graph the inverse cosecant over the domains and andthe inverse hyperbolic cosecant over the domains and

x1 = -10:0.01:-1.01; x2 = 1.01:0.01:10;plot(x1,acsc(x1),x2,acsc(x2))x1 = -20:0.01:-1; x2 = 1:0.01:20;plot(x1,acsch(x1),x2,acsch(x2))

Algorithm

10– x 1–<≤ 1 x 10,≤<20– x 1–≤ ≤ 1 x 20.≤ ≤

-10 -8 -6 -4 -2 0 2 4 6 8 10-1.5

-1

-0.5

0

0.5

1

1.5

x1,x2

y=ac

sc(x

)

-20 -15 -10 -5 0 5 10 15 20-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x1,x2

y=ac

sch(

x)

z( )csc 1– 1z---

sin 1–=

z( )csch 1– 1z---

sinh 1–=

6

Page 57: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

acsc, acsch

See Also csc, csch

7

Page 58: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

addframe

1addframePurpose Add a frame to an Audio Video Interleaved (AVI) file.

Syntax aviobj = addframe(aviobj,frame)aviobj = addframe(aviobj,frame1,frame2,frame3,...)aviobj = addframe(aviobj,mov)aviobj = addframe(aviobj,h)

Description aviobj = addframe(aviobj,frame) appends the data in frame to the AVI fileidentified by aviobj, which was created by a previous call to avifile. framecan be either an indexed image (m-by-n) or a truecolor image (m-by-n-by-3) ofdouble or uint8 precision. If frame is not the first frame added to the AVI file,it must be consistent with the dimensions of the previous frames.

addframe returns a handle to the updated AVI file object, aviobj. For example,addframe updates the TotalFrames property of the AVI file object each time itadds a frame to the AVI file.

aviobj = addframe(aviobj,frame1,frame2,frame3,...) adds multipleframes to an AVI file.

aviobj = addframe(aviobj,mov) appends the frame(s) contained in theMATLAB movie, mov, to the AVI file, aviobj. MATLAB movies that storeframes as indexed images use the colormap in the first frame as the colormapfor the AVI file, unless the colormap has been previously set.

aviobj = addframe(aviobj,h) captures a frame from the figure or axis handleh, and appends this frame to the AVI file. addframe renders the figure into anoffscreen array before appending it to the AVI file. This ensures that the figureis written correctly to the AVI file even if the figure is obscured on the screenby another window or screen saver.

Note If an animation uses XOR graphics, you must use getframe to capturethe graphics into a frame of a MATLAB movie. You can then add the frame toan AVI movie using the addframe syntax, aviobj = addframe(aviobj,mov).See the example for an illustration.

Example This example calls addframe to add frames to the AVI file object, aviobj.

8

Page 59: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

addframe

fig=figure;set(fig,'DoubleBuffer','on');set(gca,'xlim',[-80 80],'ylim',[-80 80],...

'nextplot','replace','Visible','off')

aviobj = avifile('example.avi')

x = -pi:.1:pi;radius = 0:length(x);for i=1:length(x)

h = patch(sin(x)*radius(i),cos(x)*radius(i),...[abs(cos(x(i))) 0 0]);

set(h,'EraseMode','xor');frame = getframe(gca);aviobj = addframe(aviobj,frame);

end

aviobj = close(aviobj);

See Also avifile, close, movie2avi

9

Page 60: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

addpath

1addpathPurpose Add directories to MATLAB’s search path

GraphicalInterface

As an alternative to the addpath function, use the Set Path dialog box. To openit, select Set Path from the File menu in the MATLAB desktop.

Syntax addpath('directory')addpath('dir','dir2','dir3' ...)addpath('dir','dir2','dir3' ...'-flag')addpath dir1 dir2 dir3 ... -flag

Description addpath('directory') prepends the specified directory to MATLAB’s currentsearch path, that is, it adds them to the front of the path. Use the full pathnamefor directory.

addpath('dir','dir2','dir3' ...) prepends all the specified directories tothe path. Use the full pathname for each dir.

addpath('dir','dir2','dir3' ...'-flag') either prepends or appendsthe specified directories to the path depending on the value of flag.

addpath dir1 dir2 dir3 ... -flag is the unquoted form of the syntax.

Examples For the current path, viewed by typing path,

MATLABPATHc:\matlab\toolbox\generalc:\matlab\toolbox\opsc:\matlab\toolbox\strfun

you can add c:\matlab\mymfiles to the front of the path by typing

addpath('c:\matlab\mymfiles')

Verify that the files were added to the path by typing

flag Argument Result

0 or begin Prepend specified directories

1 or end Append specified directories

10

Page 61: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

addpath

path

and MATLAB returns

MATLABPATHc:\matlab\mymfilesc:\matlab\toolbox\generalc:\matlab\toolbox\opsc:\matlab\toolbox\strfun

See Also path, pathtool, rehash, rmpath

11

Page 62: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

airy

1airyPurpose Airy functions

Syntax W = airy(Z)W = airy(k,Z)[W,ierr] = airy(k,Z)

Definition The Airy functions form a pair of linearly independent solutions to:

The relationship between the Airy and modified Bessel functions is:

where,

Description W = airy(Z) returns the Airy function, Ai(Z), for each element of the complexarray Z.

W = airy(k,Z) returns different results depending on the value of k:

Z2

2

d

d W ZW– 0=

Ai Z( ) 1π--- Z 3⁄ K1 3⁄ ζ( )=

Bi Z( ) Z 3⁄ I 1 3⁄– ζ( ) I1 3⁄ ζ( )+[ ]=

ζ 23---Z3 2⁄

=

k Returns

0 The same result as airy(Z).

1 The derivative, .

2 The Airy function of the second kind, .

3 The derivative, .

Ai′ Z( )

Bi Z( )

Bi′ Z( )

12

Page 63: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

airy

[W,ierr] = airy(k,Z) also returns an array of error flags.

See Also besseli, besselj, besselk, bessely

References [1] Amos, D. E., “A Subroutine Package for Bessel Functions of a ComplexArgument and Nonnegative Order,” Sandia National Laboratory Report,SAND85-1018, May, 1985.

[2] Amos, D. E., “A Portable Package for Bessel Functions of a ComplexArgument and Nonnegative Order,” Trans. Math. Software, 1986.

ierr = 1 Illegal arguments.

ierr = 2 Overflow. Return Inf.

ierr = 3 Some loss of accuracy in argument reduction.

ierr = 4 Unacceptable loss of accuracy, Z too large.

ierr = 5 No convergence. Return NaN.

13

Page 64: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

alim

1alimPurpose Set or query the axes alpha limits

Syntax alpha_limits = alimalim([amin amax])alim_mode = alim('mode')alim('alim_mode')alim(axes_handle,...)

Description alpha_limits = alim returns the alpha limits (the axes ALim property) of thecurrent axes.

alim([amin amax]) sets the alpha limits to the specified values. amin is thevalue of the data mapped to the first alpha value in the alphamap, and amax isthe value of the data mapped to the last alpha value in the alphamap. Datavalues in between are linearly interpolated across the alphamap, while datavalues outside are clamped to either the first or last alphamap value,whichever is closest.

alim_mode = alim('mode') returns the alpha limits mode (the axes ALimModeproperty) of the current axes.

alim('alim_mode') sets the alpha limits mode on the current axes. alim_modecan be:

• auto – MATLAB automatically sets the alpha limits based on the alpha dataof the objects in the axes.

• manual – MATLAB does not change the alpha limits.

alim(axes_handle,...) operates on the specified axes.

See Also alpha, alphamap, caxis

Axes ALim and ALimMode properties

Patch FaceVertexAlphaData property

Image and surface AlphaData properties

14

Page 65: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

all

1allPurpose Test to determine if all elements are nonzero

Syntax B = all(A)B = all(A,dim)

Description B = all(A) tests whether all the elements along various dimensions of anarray are nonzero or logical true (1).

If A is a vector, all(A) returns logical true (1) if all of the elements are nonzero,and returns logical false (0) if one or more elements are zero.

If A is a matrix, all(A) treats the columns of A as vectors, returning a rowvector of 1s and 0s.

If A is a multidimensional array, all(A) treats the values along the firstnon-singleton dimension as vectors, returning a logical condition for eachvector.

B = all(A,dim) tests along the dimension of A specified by scalar dim.

Examples Given,

A = [0.53 0.67 0.01 0.38 0.07 0.42 0.69]

then B = (A < 0.5) returns logical true (1) only where A is less than one half:

0 0 1 1 1 1 0

The all function reduces such a vector of logical conditions to a singlecondition. In this case, all(B) yields 0.

This makes all particularly useful in if statements,

if all(A < 0.5)do something

end

1 1 11 1 0

A

1 1 0

all(A,1)

10

all(A,2)

15

Page 66: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

all

where code is executed depending on a single condition, not a vector of possiblyconflicting conditions.

Applying the all function twice to a matrix, as in all(all(A)), always reducesit to a scalar condition.

all(all(eye(3)))ans = 0

See Also any

The logical operators &, |, ~

The relational operators <, <=, >, >=, ==, ~=

The colon operator :

Other functions that collapse an array’s dimensions include:

max, mean, median, min, prod, std, sum, trapz

16

Page 67: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

allchild

1allchildPurpose Find all children of specified objects

Syntax child_handles = allchild(handle_list)

Description child_handles = allchild(handle_list) returns the list of all children(including ones with hidden handles) for each handle. If handle_list is asingle element, allchild returns the output in a vector. Otherwise, the output isa cell array.

Examples Compare the results returned by these two statements.

get(gca,'Children')allchild(gca)

See Also findall, findobj

17

Page 68: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

alpha

1alphaPurpose Set or query transparency properties for objects in current axes

Syntax alpha(face_alpha)alpha(alpha_data)alpha(alpha_data_mapping)alpha(object_handle,...)

Description alpha sets one of three transparency properties, depending on what argumentsyou specify with the call to this function.

FaceAlpha

alpha(face_alpha) set the FaceAlpha property of all image, patch, andsurface objects in the current axes. You can set face_alpha to:

• a number – set the FaceAlpha property to the specified value

• 'flat' – set the FaceAlpha property to flat

• 'interp' – set the FaceAlpha property to interp

• 'texture' – set the FaceAlpha property to texture

• 'opaque' – set the FaceAlpha property to 1

• 'clear' – set the FaceAlpha property to 0

AlphaData

alpha(alpha_data) sets the AlphaData property of all image, patch, andsurface objects in the current axes. You can set alpha_data to:

• a matrix – sets the AlphaData property to the specified value

• 'x' – set the AlphaData property to be the same as XData

• 'y' – set the AlphaData property to be the same as YData

• 'z' – set the AlphaData property to be the same as ZData

• 'color' – set the AlphaData property to be the same as CData

• 'rand' – set the AlphaData property to random values

18

Page 69: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

alpha

AlphaDataMapping

alpha(alpha_data_mapping) sets the AlphaDataMapping property of allimage, patch, and surface objects in the current axes. You can setalpha_data_mapping to:

• 'scaled' – set the AlphaDataMapping property to scaled

• 'direct' – set the AlphaDataMapping property to direct

• 'none' – set the AlphaDataMapping property to none

alpha(object_handle,value) set the transparency property on the objectidentified by object_handle.

See Also alim, alphamap

Image: FaceAlpha, AlphaData, AlphaDataMapping

Patch: FaceAlpha, AlphaData, AlphaDataMapping

Surface: FaceAlpha, AlphaData, AlphaDataMapping

19

Page 70: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

alphamap

1alphamapPurpose Specify the figure alphamap (transparency)

Syntax alphamap(alpha_map)alphamap('parameter')alphamap('parameter',length)alphamap('parameter’,delta)alphamap(figure_handle,...)alpha_map = alphamapalpha_map = alphamap(figure_handle)alpha_map = alphamap(’parameter’)

Description alphamap enables you to set or modify a figure’s AlphaMap property. Unless youspecify a figure handle as the first argument, alphamap operates on the currentfigure.

alphamap(alpha_map) set the AlphaMap of the current figure to the specifiedm-by-1 array of alpha values.

alphamap('parameter') create a new or modify the current alphamap. Youcan specify the following parameters:

• default – set the AlphaMap property to the figure’s default alphamap

• rampup – create a linear alphamap with increasing opacity (default lengthequals the current alphamap length)

• rampdown – create a linear alphamap with decreasing opacity (default lengthequals the current alphamap length)

• vup – create an alphamap that is opaque in the center and becomes moretransparent linearly towards the beginning and end (default length equalsthe current alphamap length)

• vdown – create an alphamap that is transparent in the center and becomesmore opaque linearly towards the beginning and end (default length equalsthe current alphamap length)

• increase – modify the alphamap making it more opaque (default delta is .1,which is added to the current values)

• decrease – modify the alphamap making it more transparent (default deltais .1, which is subtracted from the current values)

20

Page 71: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

alphamap

• spin – rotate the current alphamap (default delta is 1; note that delta mustbe an integer)

alphamap('parameter',length) creates a new alphamap with the lengthspecified by length (used with parameters: rampup, rampdown, vup, vdown)

alphamap('parameter',delta) modifies the existing alphamap using thevalue specified by delta (used with parameters: increase, decrease, spin).

alphamap(figure_handle,...) performs the operation on the alphamap of thefigure identified by figure_handle.

alpha_map = alphamap return the current alphamap.

alpha_map = alphamap(figure_handle) returns the current alphamap fromthe figure identified by figure_handle.

alpha_map = alphamap(’parameter’) retruns the alphamap modified by theparameter, but does not set the AlphaMap property.

See Also alim, alpha

Image: FaceAlpha, AlphaData, AlphaDataMapping

Patch: FaceAlpha, AlphaData, AlphaDataMapping

Surface: FaceAlpha, AlphaData, AlphaDataMapping

21

Page 72: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

angle

1anglePurpose Phase angle

Syntax P = angle(Z)

Description P = angle(Z) returns the phase angles, in radians, for each element ofcomplex array Z. The angles lie between .

For complex Z, the magnitude and phase angle are given by

R = abs(Z) % magnitudetheta = angle(Z) % phase angle

and the statement

Z = R.∗exp(i∗theta)

converts back to the original complex Z.

Examples Z =1.0000 - 1.0000i 2.0000 + 1.0000i 3.0000 - 1.0000i 4.0000 + 1.0000i1.0000 + 2.0000i 2.0000 - 2.0000i 3.0000 + 2.0000i 4.0000 - 2.0000i1.0000 - 3.0000i 2.0000 + 3.0000i 3.0000 - 3.0000i 4.0000 + 3.0000i1.0000 + 4.0000i 2.0000 - 4.0000i 3.0000 + 4.0000i 4.0000 - 4.0000i

P = angle(Z)P =

-0.7854 0.4636 -0.3218 0.2450

1.1071 -0.7854 0.5880 -0.4636

-1.2490 0.9828 -0.7854 0.6435

1.3258 -1.1071 0.9273 -0.7854

Algorithm angle can be expressed as:

angle(z) = imag(log(z)) = atan2(imag(z),real(z))

See Also abs, unwrap

π±

22

Page 73: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ans

1ansPurpose The most recent answer

Syntax ans

Description The ans variable is created automatically when no output argument isspecified.

Examples The statement

2+2

is the same as

ans = 2+2

23

Page 74: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

any

1anyPurpose Test for any nonzeros

Syntax B = any(A)B = any(A,dim)

Description B = any(A) tests whether any of the elements along various dimensions of anarray are nonzero or logical true (1).

If A is a vector, any(A) returns logical true (1) if any of the elements of A arenonzero, and returns logical false (0) if all the elements are zero.

If A is a matrix, any(A) treats the columns of A as vectors, returning a rowvector of 1s and 0s.

If A is a multidimensional array, any(A) treats the values along the firstnon-singleton dimension as vectors, returning a logical condition for eachvector.

B = any(A,dim) tests along the dimension of A specified by scalar dim.

Examples Given,

A = [0.53 0.67 0.01 0.38 0.07 0.42 0.69]

then B = (A < 0.5) returns logical true (1) only where A is less than one half:

0 0 1 1 1 1 0

The any function reduces such a vector of logical conditions to a singlecondition. In this case, any(B) yields 1.

This makes any particularly useful in if statements,

if any(A < 0.5)do something

end

1 0 10 0 0

A

1 0 1

any(A,1)

10

any(A,2)

24

Page 75: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

any

where code is executed depending on a single condition, not a vector of possiblyconflicting conditions.

Applying the any function twice to a matrix, as in any(any(A)), always reducesit to a scalar condition.

any(any(eye(3)))ans = 1

See Also all

The logical operators &,|,~

The relational operators <, <=, >, >=, ==, ~=

The colon operator :

Other functions that collapse an array’s dimensions include:

max, mean, median, min, prod, std, sum, trapz

25

Page 76: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

area

1areaPurpose Area fill of a two-dimensional plot

Syntax area(Y)area(X,Y)area(...,ymin)area(...,'PropertyName',PropertyValue,...)h = area(...)

Description An area plot displays elements in Y as one or more curves and fills the areabeneath each curve. When Y is a matrix, the curves are stacked showing therelative contribution of each row element to the total height of the curve at eachx interval.

area(Y) plots the vector Y or the sum of each column in matrix Y. The x-axisautomatically scales depending on length(Y) when Y is a vector and onsize(Y,1)when Y is a matrix.

area(X,Y) plots Y at the corresponding values of X. If X is a vector, length(X)must equal length(Y) and X must be monotonic. If X is a matrix, size(X) mustequal size(Y) and each column in X must be monotonic. To make a vector ormatrix monotonic, use sort.

area(...,ymin) specifies the lower limit in the y direction for the area fill. Thedefault ymin is 0.

area(...,'PropertyName',PropertyValue,...) specifies property name andproperty value pairs for the patch graphics object created by area.

h = area(...) returns handles of patch graphics objects. area creates onepatch object per column in Y.

Remarks area creates one curve from all elements in a vector or one curve per column ina matrix. The colors of the curves are selected from equally spaced intervalsthroughout the entire range of the colormap.

Examples Plot the values in Y as a stacked area plot.

Y = [ 1, 5, 3;3, 2, 7;

26

Page 77: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

area

1, 5, 3;2, 6, 1];

area(Y)grid oncolormap summerset(gca,'Layer','top')title 'Stacked Area Plot'

See Also plot

Stacked Area Plot

1 1.5 2 2.5 3 3.5 40

2

4

6

8

10

12

27

Page 78: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

1Arithmetic Operators + - * / \ ^ 'Purpose Matrix and array arithmetic

Syntax A+BA–BA∗B A.∗BA/B A./BA\B A.\BA^B A.^BA' A.'

Description MATLAB has two different types of arithmetic operations. Matrix arithmeticoperations are defined by the rules of linear algebra. Array arithmeticoperations are carried out element-by-element. The period character (.)distinguishes the array operations from the matrix operations. However, sincethe matrix and array operations are the same for addition and subtraction, thecharacter pairs .+ and .– are not used.

+ Addition or unary plus. A+B adds A and B. A and B must have the samesize, unless one is a scalar. A scalar can be added to a matrix of any size.

– Subtraction or unary minus. A–B subtracts B from A. A and B must havethe same size, unless one is a scalar. A scalar can be subtracted from amatrix of any size.

* Matrix multiplication. C = A∗B is the linear algebraic product of thematrices A and B. More precisely,

For nonscalar A and B, the number of columns of A must equal thenumber of rows of B. A scalar can multiply a matrix of any size.

.∗ Array multiplication. A. ∗B is the element-by-element product of thearrays A and B. A and B must have the same size, unless one of them is ascalar.

/ Slash or matrix right division. B/A is roughly the same as B∗inv(A).More precisely, B/A = (A'\B')'. See \.

+

-

*

/

\

^

'

C i j,( ) A i k,( )B k j,( )k 1=

n

∑=

28

Page 79: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

./ Array right division. A./B is the matrix with elements A(i,j)/B(i,j).A and B must have the same size, unless one of them is a scalar.

\ Backslash or matrix left division. If A is a square matrix, A\B is roughlythe same as inv(A)∗B, except it is computed in a different way. If A isan n-by-n matrix and B is a column vector with n components, or amatrix with several such columns, then X = A\B is the solution to theequation AX = B computed by Gaussian elimination (see “Algorithm”for details). A warning message prints if A is badly scaled or nearlysingular.

If A is an m-by-n matrix with m ~= n and B is a column vector with mcomponents, or a matrix with several such columns, then X = A\B is thesolution in the least squares sense to the under- or overdeterminedsystem of equations AX = B. The effective rank, k, of A, is determinedfrom the QR decomposition with pivoting (see “Algorithm” for details).A solution X is computed which has at most k nonzero components percolumn. If k < n, this is usually not the same solution as pinv(A)∗B,which is the least squares solution with the smallest norm, ||X||.

.\ Array left division. A.\B is the matrix with elements B(i,j)/A(i,j). Aand B must have the same size, unless one of them is a scalar.

^ Matrix power. X^p is X to the power p, if p is a scalar. If p is an integer,the power is computed by repeated multiplication. If the integer isnegative, X is inverted first. For other values of p, the calculationinvolves eigenvalues and eigenvectors, such that if [V,D] = eig(X),then X^p = V∗D.^p/V.

If x is a scalar and P is a matrix, x^P is x raised to the matrix power Pusing eigenvalues and eigenvectors. X^P, where X and P are bothmatrices, is an error.

.^ Array power. A.^B is the matrix with elements A(i,j) to the B(i,j)power. A and B must have the same size, unless one of them is a scalar.

' Matrix transpose. A' is the linear algebraic transpose of A. For complexmatrices, this is the complex conjugate transpose.

.' Array transpose. A.' is the array transpose of A. For complex matrices,this does not involve conjugation.

29

Page 80: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

Remarks The arithmetic operators have M-file function equivalents, as shown:

Examples Here are two vectors, and the results of various matrix and array operations onthem, printed with format rat.

Binary addition A+B plus(A,B)

Unary plus +A uplus(A)

Binary subtraction A–B minus(A,B)

Unary minus –A uminus(A)

Matrix multiplication A*B mtimes(A,B)

Array-wise multiplication A.*B times(A,B)

Matrix right division A/B mrdivide(A,B)

Array-wise right division A./B rdivide(A,B)

Matrix left division A\B mldivide(A,B)

Array-wise left division A.\B ldivide(A,B)

Matrix power A^B mpower(A,B)

Array-wise power A.^B power(A,B)

Complex transpose A' ctranspose(A)

Matrix transpose A.' transpose(A)

Matrix Operations Array Operations

x 123

y 456

x' 1 2 3 y' 4 5 6

x+y 579

x–y –3–3–3

30

Page 81: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

x + 2 345

x–2 –101

x ∗ y Error x.∗y 41018

x'∗y 32 x'.∗y Error

x∗y' 4 5 68 10 1212 15 18

x.∗y' Error

x∗2 246

x.∗2 246

x\y 16/7 x.\y 45/22

2\x 1/213/2

2./x 212/3

x/y 0 0 1/60 0 1/30 0 1/2

x./y 1/42/51/2

x/2 1/213/2

x./2 1/213/2

x^y Error x.^y 132729

x^2 Error x.^2 149

Matrix Operations Array Operations

31

Page 82: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

Algorithm The specific algorithm used for solving the simultaneous linear equationsdenoted by X = A\B and X = B/A depends upon the structure of the coefficientmatrix A.

• If A is a triangular matrix, or a permutation of a triangular matrix, then Xcan be computed quickly by a permuted backsubstitution algorithm. Thecheck for triangularity is done for full matrices by testing for zero elementsand for sparse matrices by accessing the sparse data structure. Mostnontriangular matrices are detected almost immediately, so this checkrequires a negligible amount of time.

• If A is symmetric, or Hermitian, and has positive diagonal elements, then aCholesky factorization is attempted (see chol). If A is found to be positivedefinite, the Cholesky factorization attempt is successful and requires lessthan half the time of a general factorization. Nonpositive definite matricesare usually detected almost immediately, so this check also requires littletime. If successful, the Cholesky factorization isA = R'∗R

where R is upper triangular. The solution X is computed by solving twotriangular systems,X = R\(R'\B)

If A is sparse, a symmetric minimum degree preordering is applied (seesymmmd and spparms). The algorithm is:perm = symmmd(A); % Symmetric minimum degree reorderingR = chol(A(perm,perm)); % Cholesky factorizationy = R'\B(perm); % Lower triangular solveX(perm,:) = R\y; % Upper triangular solve

2^x Error 2.^x 248

(x+i∗y)' 1 – 4i 2 – 5i 3 – 6i

(x+i∗y).' 1 + 4i 2 + 5i 3 + 6i

Matrix Operations Array Operations

32

Page 83: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

• If A is Hessenberg, it is reduced to an upper triangular matrix and thatsystem is solved via substitution.

• If A is square, but not a permutation of a triangular matrix, or is not Hermi-tian with positive elements, or the Cholesky factorization fails, then a gener-al triangular factorization is computed by Gaussian elimination with partialpivoting (see lu). This results inA = L∗U

where L is a permutation of a lower triangular matrix and U is an uppertriangular matrix. Then X is computed by solving two permuted triangularsystems.X = U\(L\B)

If A is sparse, a nonsymmetric minimum degree preordering is applied (seecolmmd and spparms). The algorithm isperm = colmmd(A); % Column minimum degree ordering[L,U,P] = lu(A(:,perm)); % Cholesky factorizationY = L\(P*B); % Lower triangular solveX(perm,:) = U\Y; % Upper triangular solve

• If A is not square and is full, then Householder reflections are used to com-pute an orthogonal-triangular factorization.A∗P = Q∗R

where P is a permutation, Q is orthogonal and R is upper triangular (see qr).The least squares solution X is computed withX = P∗(R\(Q'∗B)

• If A is not square and is sparse, then MATLAB computes a least squaressolution using the sparse qr factorization of A.

Note Backslash is not implemented for A not square, sparse, and complex.

33

Page 84: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Arithmetic Operators + - * / \ ^ '

MATLAB uses LAPACK routines to compute the various full matrixfactorizations:

Diagnostics From matrix division, if a square A is singular:

Warning: Matrix is singular to working precision.

From element-wise division, if the divisor has zero elements:

Warning: Divide by zero.

The matrix division returns a matrix with each element set to Inf; theelement-wise division produces NaNs or Infs where appropriate.

If the inverse was found, but is not reliable:

Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = xxx

From matrix division, if a nonsquare A is rank deficient:

Warning: Rank deficient, rank = xxx tol = xxx

See Also det, inv, lu, orth, permute, ipermute, qr, rref

References Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. DuCroz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen,LAPACK User’s Guide, Third Edition, SIAM, Philadelphia, 1999.

Matrix Real Complex

Full square, symmetric (Hermitian)positive definite

DLANGE, DPOTRF,DPOTRS, DPOCON

ZLANGE, ZPOTRF,ZPOTRS ZPOCON

Full square, general case DLANGE, DGESV,DGECON

ZLANGE, ZGESV,ZGECON

Full non-square DGEQPF, DORMQR,DTRTRS

ZGEQPF, ZORMQR,ZTRTRS

For other cases (triangular and Hessenberg) MATLAB does not useLAPACK.

34

Page 85: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

asec, asech

1asec, asechPurpose Inverse secant and inverse hyperbolic secant

Syntax Y = asec(X)Y = asech(X)

Description The asec and asech functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = asec(X) returns the inverse secant (arcsecant) for each element of X.

Y = asech(X) returns the inverse hyperbolic secant for each element of X.

Examples Graph the inverse secant over the domains and and theinverse hyperbolic secant over the domain

x1 = -5:0.01:-1; x2 = 1:0.01:5;plot(x1,asec(x1),x2,asec(x2))x = 0.01:0.001:1; plot(x,asech(x))

Algorithm

See Also sec, sech

1 x 5≤ ≤ 5– x 1,–≤ ≤0 x 1.≤<

-5 -4 -3 -2 -1 0 1 2 3 4 50

0.5

1

1.5

2

2.5

3

3.5

x1,x2

y=as

ec(x

)

-20 -15 -10 -5 0 5 10 15 20-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x1,x2

y=ac

sch(

x)

z( )sec 1– 1z---

cos 1–=

z( )sech 1– 1z---

cosh 1–=

35

Page 86: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

asin, asinh

1asin, asinhPurpose Inverse sine and inverse hyperbolic sine

Syntax Y = asin(X)Y = asinh(X)

Description The asin and asinh functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = asin(X) returns the inverse sine (arcsine) for each element of X. For realelements of X in the domain , asin(X) is in the range . Forreal elements of x outside the range , asin(X) is complex.

Y = asinh(X) returns the inverse hyperbolic sine for each element of X.

Examples Graph the inverse sine function over the domain and the inversehyperbolic sine function over the domain

x = -1:.01:1; plot(x,asin(x))x = -5:.01:5; plot(x,asinh(x))

Algorithm

See Also sin, sinh

1 1,–[ ] π– 2⁄ π 2⁄,[ ]1 1,–[ ]

1– x 1,≤ ≤5– x 5.≤ ≤

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

x

y=as

in(x

)

-5 -4 -3 -2 -1 0 1 2 3 4 5-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

x

y=as

inh(

x)

z( )sin 1– i iz 1 z 2–( )12---

+log–=

z( )sinh 1– z z 2 1+( )12---

+log=

36

Page 87: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

assignin

1assigninPurpose Assign a value to a workspace variable

Syntax assignin(ws,'var',val)

Description assignin(ws,'var',val) assigns the value val to the variable var in theworkspace ws. var is created if it doesn’t exist. ws can have a value of 'base' or'caller' to denote the MATLAB base workspace or the workspace of the callerfunction.

The assignin function is particularly useful for these tasks:

• Exporting data from a function to the MATLAB workspace

• Within a function, changing the value of a variable that is defined in theworkspace of the caller function (such as a variable in the function argumentlist)

Remarks The MATLAB base workspace is the workspace that is seen from the MATLABcommand line (when not in the debugger). The caller workspace is theworkspace of the function that called the M-file. Note the base and callerworkspaces are equivalent in the context of an M-file that is invoked from theMATLAB command line.

Examples This example creates a dialog box for the image display function, prompting auser for an image name and a colormap name. The assignin function is usedto export the user–entered values to the MATLAB workspace variables imfileand cmap.

prompt = {'Enter image name:','Enter colormap name:'};title = 'Image display - assignin example';lines = 1;def = {'my_image','hsv'};answer = inputdlg(prompt,title,lines,def);assignin('base','imfile',answer{1});assignin('base','cmap',answer{2});

37

Page 88: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

assignin

See Also evalin

38

Page 89: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

atan, atanh

1atan, atanhPurpose Inverse tangent and inverse hyperbolic tangent

Syntax Y = atan(X)Y = atanh(X)

Description The atan and atanh functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = atan(X) returns the inverse tangent (arctangent) for each element of X.

For real elements of X, atan(X) is in the range .

Y = atanh(X) returns the inverse hyperbolic tangent for each element of X.

Examples Graph the inverse tangent function over the domain and theinverse hyperbolic tangent function over the domain

x = -20:0.01:20; plot(x,atan(x))x = -0.99:0.01:0.99; plot(x,atanh(x))

Algorithm

See Also atan2, tan, tanh

π– 2⁄ π 2⁄,[ ]

20– x 20,≤ ≤1– x 1.< <

-20 -15 -10 -5 0 5 10 15 20-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

x

y=at

an(x

)

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-3

-2

-1

0

1

2

3

x

y=at

anh(

x)

z( )tan 1– i2---- i z+

i z–-----------

log=

z( )tanh 1– 12---=

1 z+1 z–------------

log

39

Page 90: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

atan2

1atan2Purpose Four-quadrant inverse tangent

Syntax P = atan2(Y,X)

Description P = atan2(Y,X) returns an array P the same size as X and Y containing theelement-by-element, four-quadrant inverse tangent (arctangent) of the realparts of Y and X. Any imaginary parts are ignored.

Elements of P lie in the closed interval [-pi,pi], where pi is MATLAB’s floating-point representation of . The specific quadrant is determined by sign(Y) andsign(X):

This contrasts with the result of atan(Y/X), which is limited to the interval, or the right side of this diagram.

Examples Any complex number z = x+iy is converted to polar coordinates with

r = abs(z)theta = atan2(imag(z),real(z))

To convert back to the original complex number:

z = r ∗exp(i ∗theta)

This is a common operation, so MATLAB provides a function, angle(z), thatsimply computes atan2(imag(z),real(z)).

See Also atan, atanh, tan, tanh

π

π/2

π–π 0

x

y

–π/2

π– 2⁄ π 2⁄,[ ]

40

Page 91: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

auread

1auread

Purpose Read NeXT/SUN (.au) sound file

GraphicalInterface

As an alternative to auread, use the Import Wizard. To activate the ImportWizard, select Import data from the File menu.

Syntax y = auread('aufile')[y,Fs,bits] = auread('aufile')[...] = auread('aufile',N)[...] = auread('aufile',[N1,N2])siz = auread('aufile','size')

Description y = auread('aufile') loads a sound file specified by the string aufile,returning the sampled data in y. The .au extension is appended if no extensionis given. Amplitude values are in the range [–1,+1]. auread supportsmulti-channel data in the following formats:

• 8-bit mu-law

• 8-, 16-, and 32-bit linear

• floating-point

[y,Fs,bits] = auread('aufile') returns the sample rate (Fs) in Hertz andthe number of bits per sample (bits) used to encode the data in the file.

[...] = auread('aufile',N) returns only the first N samples from eachchannel in the file.

[...] = auread('aufile',[N1 N2]) returns only samples N1 through N2from each channel in the file.

siz = auread('aufile','size') returns the size of the audio data containedin the file in place of the actual audio data, returning the vector siz =[samples channels].

See Also auwrite, wavread

41

Page 92: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

auwrite

1auwritePurpose Write NeXT/SUN (.au) sound file

Syntax auwrite(y,'aufile')auwrite(y,Fs,'aufile')auwrite(y,Fs,N,'aufile')auwrite(y,Fs,N,'method','aufile')

Description auwrite(y,'aufile') writes a sound file specified by the string aufile. Thedata should be arranged with one channel per column. Amplitude valuesoutside the range [–1,+1] are clipped prior to writing. auwrite supportsmulti-channel data for 8-bit mu-law, and 8- and 16-bit linear formats.

auwrite(y,Fs,'aufile') specifies the sample rate of the data in Hertz.

auwrite(y,Fs,N,'aufile') selects the number of bits in the encoder.Allowable settings are N = 8 and N = 16.

auwrite(y,Fs,N,'method','aufile') allows selection of the encodingmethod, which can be either mu or linear. Note that mu-law files must be 8-bit.By default, method = 'mu'.

See Also auread, wavwrite

42

Page 93: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

avifile

1avifilePurpose Create a new Audio Video Interleaved (AVI) file

Syntax aviobj = avifile(filename)aviobj =

avifile(filename,'PropertyName',value,'PropertyName',value,...)

Description aviobj = avifile(filename) creates an AVI file, giving it the name specifiedin filename, using default values for all AVI file object properties. If filenamedoes not include an extension, avifile appends .avi to the filename. AVI is afile format for storing audio and video data.

avifile returns a handle to an AVI file object, aviobj. You use this object torefer to the AVI file in other functions. An AVI file object supports propertiesand methods that control aspects of the AVI file created.

aviobj = avifile(filename,'Param',Value,'Param',Value,...) createsan AVI file with the specified parameter settings. This table lists availableparameters.

Parameter Value Default

'colormap' An m-by-3 matrix defining the colormapto be used for indexed AVI movies,where m must be no greater than 256(236 if using Indeo compression). Youmust set this parameter before callingaddframe, unless you are usingaddframe with the MATLAB moviesyntax.

There is nodefaultcolormap.

'compression' A text string specifying whichcompression codec to use.

On Windows:'Indeo3''Indeo5''Cinepak''MSVC''None'

On Unix:'None'

'Indeo3',onWindows.'None' onUnix.

43

Page 94: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

avifile

You can also use structure syntax to set AVI file object properties. Forexample, to set the quality property to 100 use the following syntax:

aviobj = avifile(filename); aviobj.Quality = 100;

Example This example shows how to use the avifile function to create the AVI fileexample.avi.

fig=figure;set(fig,'DoubleBuffer','on');

To use a custom compression codec,specify the four-character code thatidentifies the codec (typically includedin the codec documentation). Theaddframe function reports an error if itcan not find the specified customcompressor.

'fps' A scalar value specifying the speed ofthe AVI movie in frames per second(fps).

15 fps

'keyframe' For compressors that support temporalcompression, this is the number of keyframes per second.

2 keyframes persecond.

'name' A descriptive name for the videostream. This parameter must be nogreater than 64 characters long.

The defaultis thefilename.

'quality' A number between 0 and 100. Thisparameter has no effect onuncompressed movies. Higher qualitynumbers result in higher video qualityand larger file sizes. Lower qualitynumbers result in lower video qualityand smaller file sizes.

75

Parameter Value Default

44

Page 95: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

avifile

set(gca,'xlim',[-80 80],'ylim',[-80 80],... 'NextPlot','replace','Visible','off')

mov = avifile('example.avi')x = -pi:.1:pi;radius = 0:length(x);for i=1:length(x)

h = patch(sin(x)*radius(i),cos(x)*radius(i),...[abs(cos(x(i))) 0 0]);

set(h,'EraseMode','xor');F = getframe(gca);mov = addframe(mov,F);

endmov = close(mov);

See Also addframe, close, movie2avi

45

Page 96: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

aviinfo

1aviinfoPurpose Return information about an Audio Video Interleaved (AVI) file

Syntax fileinfo = aviinfo(filename)

Description fileinfo = aviinfo(filename) returns a structure whose fields containinformation about the AVI file specified in the string, filename. If filenamedoes not include an extension, then .avi is used. The file must be in thecurrent working directory or in a directory on the MATLAB path.

The set of fields in the fileinfo structure are shown below.

Field Name Description

AudioFormat A string containing the name of the format usedto store the audio data, if audio data is present

AudioRate An integer indicating the sample rate in Hertz ofthe audio stream, if audio data is present

Filename A string specifying the name of the file

FileModDate A string containing the modification date of thefile

FileSize An integer indicating the size of the file in bytes

FramesPerSecond An integer indicating the desired frames persecond

Height An integer indicating the height of the AVI moviein pixels

ImageType A string indicating the type of image. Either'truecolor' for a truecolor (RGB) image, or'indexed' for an indexed image.

NumAudioChannels An integer indicating the number of channels inthe audio stream, if audio data is present

NumFrames An integer indicating the total number of framesin the movie

46

Page 97: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

aviinfo

See also avifile, aviread

NumColormapEntries An integer specifying the number of colormapentries

Quality A number between 0 and 100 indicating the videoquality in the AVI file. Higher quality numbersindicate higher video quality; lower qualitynumbers indicate lower video quality. This valueis not always set in AVI files and therefore may beinaccurate.

VideoCompression A string containing the compressor used tocompress the AVI file. If the compressor is notMicrosoft Video 1, Run Length Encoding (RLE),Cinepak, or Intel Indeo, aviinfo returns afour-character code.

Width An integer indicating the width of the AVI moviein pixels

Field Name Description

47

Page 98: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

aviread

1avireadPurpose Read an Audio Video Interleaved (AVI) file.

Syntax mov = aviread(filename)mov = aviread(filename,index)

Description mov = aviread(filename) reads the AVI movie filename into the MATLABmovie structure mov. If filename does not include an extension, then .avi isused. Use the movie function to view the movie, mov. On UNIX, filename mustbe an uncompressed AVI file.

mov has two fields, cdata and colormap. The content of these fields variesdepending on the type of image. .

mov = aviread(filename,index) reads only the frame(s) specified by index.index can be a single index or an array of indices into the video stream. In AVIfiles, the first frame has the index value 1, the second frame has the index value2, and so on.

See also aviinfo, avifile, movie

Image Type mov.cdata Field mov.colormap Field

Truecolor height-by-width-by-3array

Empty

Indexed height-by-width array m-by-3 array

48

Page 99: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

1axesPurpose Create axes graphics object

Syntax axesaxes('PropertyName',PropertyValue,...)axes(h)h = axes(...)

Description axes is the low-level function for creating axes graphics objects.

axes creates an axes graphics object in the current figure using defaultproperty values.

axes('PropertyName',PropertyValue,...) creates an axes object having thespecified property values. MATLAB uses default values for any properties thatyou do not explicitly define as arguments.

axes(h) makes existing axes h the current axes. It also makes h the first axeslisted in the figure’s Children property and sets the figure’s CurrentAxesproperty to h. The current axes is the target for functions that draw image, line,patch, surface, and text graphics objects.

h = axes(...) returns the handle of the created axes object.

Remarks MATLAB automatically creates an axes, if one does not already exist, whenyou issue a command that draws image, light, line, patch, surface, or textgraphics objects.

The axes function accepts property name/property value pairs, structurearrays, and cell arrays as input arguments (see the set and get commands forexamples of how to specify these data types). These properties, which controlvarious aspects of the axes object, are described in the “Axes Properties”section.

Use the set function to modify the properties of an existing axes or the getfunction to query the current values of axes properties. Use the gca commandto obtain the handle of the current axes.

The axis (not axes) function provides simplified access to commonly usedproperties that control the scaling and appearance of axes.

49

Page 100: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

While the basic purpose of an axes object is to provide a coordinate system forplotted data, axes properties provide considerable control over the wayMATLAB displays data.

Stretch-to-FillBy default, MATLAB stretches the axes to fill the axes position rectangle (therectangle defined by the last two elements in the Position property). Thisresults in graphs that use the available space in the rectangle. However, some3-D graphs (such as a sphere) appear distorted because of this stretching, andare better viewed with a specific three-dimensional aspect ratio.

Stretch-to-fill is active when the DataAspectRatioMode,PlotBoxAspectRatioMode, and CameraViewAngleMode are all auto (thedefault). However, stretch-to-fill is turned off when the DataAspectRatio,PlotBoxAspectRatio, or CameraViewAngle is user-specified, or when one ormore of the corresponding modes is set to manual (which happensautomatically when you set the corresponding property value).

This picture shows the same sphere displayed both with and without thestretch-to-fill. The dotted lines show the axes Position rectangle.

When stretch-to-fill is disabled, MATLAB sets the size of the axes to be as largeas possible within the constraints imposed by the Position rectangle withoutintroducing distortion. In the picture above, the height of the rectangleconstrains the axes size.

Stretch-to-fill active

−1 −0.5 0 0.5 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 11

8

6

4

2

0

2

4

6

8

1

Stretch-to-fill disabled

50

Page 101: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

Examples Zooming

Zoom in using aspect ratio and limits:

sphereset(gca,'DataAspectRatio',[1 1 1],...

'PlotBoxAspectRatio',[1 1 1],'ZLim',[−0.6 0.6])

Zoom in and out using the CameraViewAngle:

sphereset(gca,'CameraViewAngle',get(gca,'CameraViewAngle')−5)set(gca,'CameraViewAngle',get(gca,'CameraViewAngle')+5)

Note that both examples disable MATLAB’s stretch-to-fill behavior.

Positioning the AxesThe axes Position property enables you to define the location of the axeswithin the figure window. For example,

h = axes('Position',position_rectangle)

creates an axes object at the specified position within the current figure andreturns a handle to it. Specify the location and size of the axes with a rectangledefined by a four-element vector,

position_rectangle = [left, bottom, width, height];

The left and bottom elements of this vector define the distance from thelower-left corner of the figure to the lower-left corner of the rectangle. Thewidth and height elements define the dimensions of the rectangle. You specifythese values in units determined by the Units property. By default, MATLABuses normalized units where (0,0) is the lower-left corner and (1.0,1.0) is theupper-right corner of the figure window.

You can define multiple axes in a single figure window:

axes('position',[.1 .1 .8 .6])mesh(peaks(20));axes('position',[.1 .7 .8 .2])pcolor([1:10;1:10]);

51

Page 102: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

In this example, the first plot occupies the bottom two-thirds of the figure, andthe second occupies the top third.

See Also axis, cla, clf, figure, gca, grid, subplot, title, xlabel, ylabel, zlabel,view

05

1015

20

05

1015

20−10

−5

0

5

10

1 2 3 4 5 6 7 8 9 101

1.5

2

52

Page 103: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

ObjectHierarchy

Setting Default PropertiesYou can set default axes properties on the figure and root levels:

set(0,'DefaultAxesPropertyName',PropertyValue,...)set(gcf,'DefaultAxesPropertyName',PropertyValue,...)

where PropertyName is the name of the axes property and PropertyValue isthe value you are specifying. Use set and get to access axes properties.

Property List The following table lists all axes properties and provides a brief description ofeach. The property name links take you an expanded description of theproperties.

Uimenu

Line

Axes Uicontrol

Image

Figure

Uicontextmenu

Light SurfacePatch Text

Root

Rectangle

Property Name Property Description Property Value

Controlling Style and Appearance

Box Toggle axes plot box on and off Values: on, offDefault: off

Clipping This property has no effect; axes arealways clipped to the figure window

GridLineStyle Line style used to draw axes gridlines

Values: −, −−, :, -., noneDefault: : (dotted line)

53

Page 104: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

Layer Draw axes above or below graphs Values: bottom, topDefault: bottom

LineStyleOrder Sequence of line styles used formultiline plots

Values: LineSpecDefault: − (solid line for)

LineWidth Width of axis lines, in points (1/72"per point)

Values: number of pointsDefault: 0.5 points

SelectionHighlight Highlight axes when selected(Selected property set to on)

Values: on, off Default: on

TickDir Direction of axis tick marks Values: in, outDefault: in (2-D), out (3-D)

TickDirMode Use MATLAB or user-specified tickmark direction

Values: auto, manualDefault: auto

TickLength Length of tick marks normalized toaxis line length, specified astwo-element vector

Values: [2-D 3-D]Default: [0.01 0.025}

Visible Make axes visible or invisible Values: on, offDefault: on

XGrid, YGrid, ZGrid Toggle grid lines on and off inrespective axis

Values: on, offDefault: off

General Information About the Axes

Children Handles of the images, lights, lines,patches, surfaces, and text objectsdisplayed in the axes

Values: vector of handles

CurrentPoint Location of last mouse button clickdefined in the axes data units

Values: a 2-by-3 matrix

HitTest Specify whether axes can becomethe current object (see figureCurrentObject property)

Values: on, offDefault: on

Property Name Property Description Property Value

54

Page 105: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

Parent Handle of the figure windowcontaining the axes

Values: scalar figure handle

Position Location and size of axes within thefigure

Values: [left bottom widthheight]Default: [0.1300 0.11000.7750 0.8150] innormalized Units

Selected Indicate whether axes is in a“selected” state

Values: on, offDefault: on

Tag User-specified label Values: any stringDefault: '' (empty string)

Type The type of graphics object (readonly)

Value: the string 'axes'

Units Units used to interpret thePosition property

Values: inches,centimeters, characters,normalized, points, pixelsDefault: normalized

UserData User-specified data Values: any matrixDefault: [] (empty matrix)

Selecting Fonts and Labels

FontAngle Select italic or normal font Values: normal, italic,obliqueDefault: normal

FontName Font family name (e.g., Helvetica,Courier)

Values: a font supported byyour system or the stringFixedWidthDefault: Typically Helvetica

FontSize Size of the font used for title andlabels

Values: an integer inFontUnits Default: 10

Property Name Property Description Property Value

55

Page 106: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

FontUnits Units used to interpret theFontSize property

Values: points,normalized, inches,centimeters, pixelsDefault: points

FontWeight Select bold or normal font Values: normal, bold,light, demiDefault: normal

Title Handle of the title text object Values: any valid text objecthandle

XLabel, YLabel, ZLabel Handles of the respective axis labeltext objects

Values: any valid text objecthandle

XTickLabel,YTickLabel,ZTickLabel

Specify tick mark labels for therespective axis

Values: matrix of stringsDefaults: numeric valuesselected automatically byMATLAB

XTickLabelMode,YTickLabelMode,ZTickLabelMode

Use MATLAB or user-specified tickmark labels

Values: auto, manualDefault: auto

Controlling Axis Scaling

XAxisLocation Specify the location of the x-axis Values: top, bottomDefault: bottom

YAxisLocation Specify the location of the y-axis Values: right leftDefault: left

XDir, YDir, ZDir Specify the direction of increasingvalues for the respective axes

Values: normal, reverseDefault: normal

XLim, YLim, ZLim Specify the limits to the respectiveaxes

Values: [min max]Default: min and maxdetermined automaticallyby MATLAB

Property Name Property Description Property Value

56

Page 107: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

XLimMode, YLimMode,ZLimMode

Use MATLAB or user-specifiedvalues for the respective axis limits

Values: auto, manualDefault: auto

XScale, YScale, ZScale Select linear or logarithmic scalingof the respective axis

Values: linear, logDefault: linear (changedby plotting commands thatcreate nonlinear plots)

XTick, YTick, ZTick Specify the location of the axis ticksmarks

Values: a vector of datavalues locating tick marksDefault: MATLABautomatically determinestick mark placement

XTickMode, YTickMode,ZTickMode

Use MATLAB or user-specifiedvalues for the respective tick marklocations

Values: auto, manualDefault: auto

Controlling the View

CameraPosition Specify the position of point fromwhich you view the scene

Values: [x,y,z] axescoordinatesDefault: automaticallydetermined by MATLAB

CameraPositionMode Use MATLAB or user-specifiedcamera position

Values: auto, manualDefault: auto

CameraTarget Center of view pointed to by camera Values: [x,y,z] axescoordinatesDefault: automaticallydetermined by MATLAB

CameraTargetMode Use MATLAB or user-specifiedcamera target

Values: auto, manualDefault: auto

Property Name Property Description Property Value

57

Page 108: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

CameraUpVector Direction that is oriented up Values: [x,y,z] axescoordinatesDefault: automaticallydetermined by MATLAB

CameraUpVectorMode Use MATLAB or user-specifiedcamera up vector

Values: auto, manualDefault: auto

CameraViewAngle Camera field of view Values: angle in degreesbetween 0 and 180Default: automaticallydetermined by MATLAB

CameraViewAngleMode Use MATLAB or user-specifiedcamera view angle

Values: auto, manualDefault: auto

Projection Select type of projection Values: orthographic,perspectiveDefault: orthographic

Controlling the Axes Aspect Ratio

DataAspectRatio Relative scaling of data units Values: three relativevalues [dx dy dz]Default: automaticallydetermined by MATLAB

DataAspectRatioMode Use MATLAB or user-specified dataaspect ratio

Values: auto, manualDefault: auto

PlotBoxAspectRatio Relative scaling of axes plot box Values: three relativevalues [dx dy dz]Default: automaticallydetermined by MATLAB

PlotBoxAspectRatioMode Use MATLAB or user-specified plotbox aspect ratio

Values: auto, manualDefault: auto

Controlling Callback Routine Execution

Property Name Property Description Property Value

58

Page 109: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

BusyAction Specify how to handle events thatinterrupt execution callbackroutines

Values: cancel, queueDefault: queue

ButtonDownFcn Define a callback routine thatexecutes when a button is pressedover the axes

Values: stringDefault: an empty string

CreateFcn Define a callback routine thatexecutes when an axes is created

Values: stringDefault: an empty string

DeleteFcn Define a callback routine thatexecutes when an axes is created

Values: string Default: anempty string

Interruptible Control whether an executingcallback routine can be interrupted

Values: on, off Default: on

UIContextMenu Associate a context menu with theaxes

Values: handle of aUicontextmenu

Specifying the Rendering Mode

DrawMode Specify the rendering method to usewith the Painters renderer

Values: normal, fastDefault: normal

Targeting Axes for Graphics Display

HandleVisibility Control access to a specific axes’handle

Values: on, callback, offDefault: on

NextPlot Determine the eligibility of the axesfor displaying graphics

Values: add, replace,replacechildrenDefault: replace

Properties that Specify Transparency

ALim Alpha axis limits Values: [amin amax]

ALimMode Alpha axis limits mode Values: auto | manualDefault: auto

Properties that Specify Color

Property Name Property Description Property Value

59

Page 110: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axes

AmbientLightColor Color of the background light in ascene

Values: ColorSpecDefault: [1 1 1]

CLim Control how data is mapped tocolormap

Values: [cmin cmax]Default: automaticallydetermined by MATLAB

CLimMode Use MATLAB or user-specifiedvalues for CLim

Values: auto, manualDefault: auto

Color Color of the axes background Values: none, ColorSpecDefault: none

ColorOrder Line colors used for multiline plots Values: m-by-3 matrix ofRGB valuesDefault: depends on colorscheme used

XColor, YColor, ZColor Colors of the axis lines and tickmarks

Values: ColorSpecDefault: depends on currentcolor scheme

Property Name Property Description Property Value

60

Page 111: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

1Axes PropertiesModifyingProperties

You can set and query graphics object properties in two ways:

• The Property Editor is an interactive tool that enables you to see and changeobject property values.

• The set and get commands enable you to set and query the values ofproperties

To change the default value of properties see Setting Default Property Values.

Axes PropertyDescriptions

This section lists property names along with the types of values each accepts.Curly braces { } enclose default values.

ALim [amin, amax]

Alpha axis limits. A two-element vector that determines how MATLAB mapsthe AlphaData values of surface, patch and image objects to the figure'salphamap. amin is the value of the data mapped to the first alpha value in thealphamap, and amax is the value of the data mapped to the last alpha value inthe alphamap. Data values in between are linearly interpolated across thealphamap, while data values outside are clamped to either the first or lastalphamap value, whichever is closest.

When ALimMode is auto (the default), MATLAB assigns amin the minimumdata value and amax the maximum data value in the graphics object'sAlphaData. This maps AlphaData elements with minimum data values to thefirst alphamap entry and those with maximum data values to the lastalphamap entry. Data values in between are mapped linearly to the values

If the axes contains multiple graphics objects, MATLAB sets ALim to span therange of all objects' AlphaData (or FaceVertexAlphaData for patch objects).

ALimMode {auto} | manual

Alpha axis limits mode. In auto mode, MATLAB sets the ALim property to spanthe AlphaData limits of the graphics objects displayed in the axes. If ALimModeis manual, MATLAB does not change the value of ALim when the AlphaDatalimits of axes children change. Setting the ALim property sets ALimMode tomanual.

AmbientLightColor ColorSpec

The background light in a scene. Ambient light is a directionless light thatshines uniformly on all objects in the axes. However, if there are no visible light

61

Page 112: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

objects in the axes, MATLAB does not use AmbientLightColor. If there arelight objects in the axes, the AmbientLightColor is added to the other lightsources.

AspectRatio (Obsolete)

This property produces a warning message when queried or changed. It hasbeen superseded by the DataAspectRatio[Mode] andPlotBoxAspectRatio[Mode] properties.

Box on | {off}

Axes box mode. This property specifies whether to enclose the axes extent in abox for 2-D views or a cube for 3-D views. The default is to not display the box.

BusyAction cancel | {queue}

Callback routine interruption. The BusyAction property enables you to controlhow MATLAB handles events that potentially interrupt executing callbackroutines. If there is a callback routine executing, subsequently invokedcallback routines always attempt to interrupt it. If the Interruptible propertyof the object whose callback is executing is set to on (the default), theninterruption occurs at the next point where the event queue is processed. If theInterruptible property is off, the BusyAction property (of the object owningthe executing callback) determines how MATLAB handles the event. Thechoices are:

• cancel – discard the event that attempted to execute a second callbackroutine.

• queue – queue the event that attempted to execute a second callback routineuntil the current callback finishes.

ButtonDownFcn string

Button press callback routine. A callback routine that executes whenever youpress a mouse button while the pointer is within the axes, but not over anothergraphics object displayed in the axes. For 3-D views, the active area is definedby a rectangle that encloses the axes.

Define this routine as a string that is a valid MATLAB expression or the nameof an M-file. The expression executes in the MATLAB workspace.

62

Page 113: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

CameraPosition [x, y, z] axes coordinates

The location of the camera. This property defines the position from which thecamera views the scene. Specify the point in axes coordinates.

If you fix CameraViewAngle, you can zoom in and out on the scene by changingthe CameraPosition, moving the camera closer to the CameraTarget to zoom inand farther away from the CameraTarget to zoom out. As you change theCameraPosition, the amount of perspective also changes, if Projection isperspective. You can also zoom by changing the CameraViewAngle; however,this does not change the amount of perspective in the scene.

CameraPositionMode {auto} | manual

Auto or manual CameraPosition. When set to auto, MATLAB automaticallycalculates the CameraPosition such that the camera lies a fixed distance fromthe CameraTarget along the azimuth and elevation specified by view. Setting avalue for CameraPosition sets this property to manual.

CameraTarget [x, y, z] axes coordinates

Camera aiming point. This property specifies the location in the axes that thecamera points to. The CameraTarget and the CameraPosition define the vector(the view axis) along which the camera looks.

CameraTargetMode {auto} | manual

Auto or manual CameraTarget placement. When this property is auto,MATLAB automatically positions the CameraTarget at the centroid of the axesplotbox. Specifying a value for CameraTarget sets this property to manual.

CameraUpVector [x, y, z] axes coordinates

Camera rotation. This property specifies the rotation of the camera around theviewing axis defined by the CameraTarget and the CameraPosition properties.Specify CameraUpVector as a three-element array containing the x, y, and zcomponents of the vector. For example, [0 1 0] specifies the positive y-axis asthe up direction.

The default CameraUpVector is [0 0 1], which defines the positive z-axis as theup direction.

CameraUpVectorMode {auto} | manual

Default or user-specified up vector. When CameraUpVectorMode is auto,MATLAB uses a value of [0 0 1] (positive z-direction is up) for 3-D views and

63

Page 114: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

[0 1 0] (positive y-direction is up) for 2-D views. Setting a value forCameraUpVector sets this property to manual.

CameraViewAngle scalar greater than 0 and less than or equal to180 (angle in degrees)

The field of view. This property determines the camera field of view. Changingthis value affects the size of graphics objects displayed in the axes, but does notaffect the degree of perspective distortion. The greater the angle, the larger thefield of view, and the smaller objects appear in the scene.

CameraViewAngleMode{auto} | manual

Auto or manual CameraViewAngle. When in auto mode, MATLAB setsCameraViewAngle to the minimum angle that captures the entire scene (up to180˚).

The following table summarizes MATLAB’s automatic camera behavior.

CameraViewAngle

CameraTarget

CameraPosition

Behavior

auto auto auto CameraTarget is set to plot box centroid,CameraViewAngle is set to capture entire scene,CameraPosition is set along the view axis.

auto auto manual CameraTarget is set to plot box centroid,CameraViewAngle is set to capture entire scene.

auto manual auto CameraViewAngle is set to capture entire scene,CameraPosition is set along the view axis.

auto manual manual CameraViewAngle is set to capture entire scene.

manual auto auto CameraTarget is set to plot box centroid,CameraPosition is set along the view axis.

manual auto manual CameraTarget is set to plot box centroid

manual manual auto CameraPosition is set along the view axis.

manual manual manual All Camera properties are user-specified.

64

Page 115: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

Children vector of graphics object handles

Children of the axes. A vector containing the handles of all graphics objectsrendered within the axes (whether visible or not). The graphics objects that canbe children of axes are images, lights, lines, patches, surfaces, and text. Youcan change the order of the handles and thereby change the stacking of theobjects on the display.

The text objects used to label the x-, y-, and z-axes are also children of axes, buttheir HandleVisibility properties are set to callback. This means theirhandles do not show up in the axes Children property unless you set the RootShowHiddenHandles property to on.

CLim [cmin, cmax]

Color axis limits. A two-element vector that determines how MATLAB mapsthe CData values of surface and patch objects to the figure’s colormap. cmin isthe value of the data mapped to the first color in the colormap, and cmax is thevalue of the data mapped to the last color in the colormap. Data values inbetween are linearly interpolated across the colormap, while data valuesoutside are clamped to either the first or last colormap color, whichever isclosest.

When CLimMode is auto (the default), MATLAB assigns cmin the minimumdata value and cmax the maximum data value in the graphics object’s CData.This maps CData elements with minimum data value to the first colormapentry and with maximum data value to the last colormap entry.

If the axes contains multiple graphics objects, MATLAB sets CLim to span therange of all objects’ CData.

CLimMode {auto} | manual

Color axis limits mode. In auto mode, MATLAB sets the CLim property to spanthe CData limits of the graphics objects displayed in the axes. If CLimMode ismanual, MATLAB does not change the value of CLim when the CData limits ofaxes children change. Setting the CLim property sets this property to manual.

Clipping {on} | off

This property has no effect on axes.

65

Page 116: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

Color {none} | ColorSpec

Color of the axes back planes. Setting this property to none means the axes istransparent and the figure color shows through. A ColorSpec is athree-element RGB vector or one of MATLAB’s predefined names. Note thatwhile the default value is none, the matlabrc.m file may set the axes color toa specific color.

ColorOrder m-by-3 matrix of RGB values

Colors to use for multiline plots. ColorOrder is an m-by-3 matrix of RGB valuesthat define the colors used by the plot and plot3 functions to color each lineplotted. If you do not specify a line color with plot and plot3, these functionscycle through the ColorOrder to obtain the color for each line plotted. To obtainthe current ColorOrder, which may be set during startup, get the propertyvalue:

get(gca,'ColorOrder')

Note that if the axes NextPlot property is set to replace (the default),high-level functions like plot reset the ColorOrder property beforedetermining the colors to use. If you want MATLAB to use a ColorOrder thatis different from the default, set NextPlot to replacechildren. You can alsospecify your own default ColorOrder.

CreateFcn string

Callback routine executed during object creation. This property defines acallback routine that executes when MATLAB creates an axes object. You mustdefine this property as a default value for axes. For example, the statement,

set(0,'DefaultAxesCreateFcn','set(gca,''Color'',''b'')')

defines a default value on the Root level that sets the current axes’ backgroundcolor to blue whenever you (or MATLAB) create an axes. MATLAB executesthis routine after setting all properties for the axes. Setting this property on anexisting axes object has no effect.

The handle of the object whose CreateFcn is being executed is accessible onlythrough the Root CallbackObject property, which can be queried using gcbo.

CurrentPoint 2-by-3 matrix

Location of last button click, in axes data units. A 2-by-3 matrix containing thecoordinates of two points defined by the location of the pointer. These two

66

Page 117: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

points lie on the line that is perpendicular to the plane of the screen and passesthrough the pointer. The 3-D coordinates are the points, in the axes coordinatesystem, where this line intersects the front and back surfaces of the axesvolume (which is defined by the axes x, y, and z limits).

The returned matrix is of the form:

MATLAB updates the CurrentPoint property whenever a button-click eventoccurs. The pointer does not have to be within the axes, or even the figurewindow; MATLAB returns the coordinates with respect to the requested axesregardless of the pointer location.

DataAspectRatio [dx dy dz]

Relative scaling of data units. A three-element vector controlling the relativescaling of data units in the x, y, and z directions. For example, setting thisproperty t o [1 2 1] causes the length of one unit of data in the x direction tobe the same length as two units of data in the y direction and one unit of datain the z direction.

Note that the DataAspectRatio property interacts with thePlotBoxAspectRatio, XLimMode, YLimMode, and ZLimMode properties to controlhow MATLAB scales the x-, y-, and z-axis. Setting the DataAspectRatio willdisable the stretch-to-fill behavior, if DataAspectRatioMode,PlotBoxAspectRatioMode, and CameraViewAngleMode are all auto. The

xback yback zbackxfront yfront zfront

67

Page 118: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

following table describes the interaction between properties whenstretch-to-fill behavior is disabled.

X-, Y-,Z-Limits

DataAspectRatio

PlotBoxAspectRatio

Behavior

auto auto auto Limits chosen to span data range in alldimensions.

auto auto manual Limits chosen to span data range in alldimensions. DataAspectRatio is modified toachieve the requested PlotBoxAspectRatiowithin the limits selected by MATLAB.

auto manual auto Limits chosen to span data range in alldimensions. PlotBoxAspectRatio is modified toachieve the requested DataAspectRatio withinthe limits selected by MATLAB.

auto manual manual Limits chosen to completely fit and center theplot within the requested PlotBoxAspectRatiogiven the requested DataAspectRatio (this mayproduce empty space around 2 of the 3dimensions).

manual auto auto Limits are honored. The DataAspectRatio andPlotBoxAspectRatio are modified as necessary.

manual auto manual Limits and PlotBoxAspectRatio are honored.The DataAspectRatio is modified as necessary.

manual manual auto Limits and DataAspectRatio are honored. ThePlotBoxAspectRatio is modified as necessary.

1 manual2 auto

manual manual The 2 automatic limits are selected to honor thespecified aspect ratios and limit. See“Examples”

2 or 3manual

manual manual Limits and DataAspectRatio are honored; thePlotBoxAspectRatio is ignored.

68

Page 119: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

DataAspectRatioMode{auto} | manual

User or MATLAB controlled data scaling. This property controls whether thevalues of the DataAspectRatio property are user defined or selectedautomatically by MATLAB. Setting values for the DataAspectRatio propertyautomatically sets this property to manual. Changing DataAspectRatioMode tomanual disables the stretch-to-fill behavior, if DataAspectRatioMode,PlotBoxAspectRatioMode, and CameraViewAngleMode are all auto.

DeleteFcn string

Delete axes callback routine. A callback routine that executes when the axesobject is deleted (e.g., when you issue a delete or a close command). MATLABexecutes the routine before destroying the object’s properties so the callbackroutine can query these values.

The handle of the object whose DeleteFcn is being executed is accessible onlythrough the Root CallbackObject property, which can be queried using gcbo.

DrawMode {normal} | fast

Rendering method. This property controls the method MATLAB uses to rendergraphics objects displayed in the axes, when the figure Renderer property ispainters.

• normal mode draws objects in back to front ordering based on the currentview in order to handle hidden surface elimination and object intersections.

• fast mode draws objects in the order in which you specify the drawingcommands, without considering the relationships of the objects in threedimensions. This results in faster rendering because it requires no sorting ofobjects according to location in the view, but may produce undesirableresults because it bypasses the hidden surface elimination and objectintersection handling provided by normal DrawMode.

When the figure Renderer is zbuffer, DrawMode is ignored, and hidden surfaceelimination and object intersection handling are always provided.

FontAngle {normal} | italic | oblique

Select italic or normal font. This property selects the character slant for axestext. normal specifies a nonitalic font. italic and oblique specify italic font.

69

Page 120: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

FontName A name such as Courier or the string FixedWidth

Font family name. The font family name specifying the font to use for axeslabels. To display and print properly, FontNamemust be a font that your systemsupports. Note that the x-, y-, and z-axis labels do not display in a new font untilyou manually reset them (by setting the XLabel, YLabel, and ZLabel propertiesor by using the xlabel, ylabel, or zlabel command). Tick mark labels changeimmediately.

Specifying a Fixed-Width FontIf you want an axes to use a fixed-width font that looks good in any locale, youshould set FontName to the string FixedWidth:

set(axes_handle,'FontName','FixedWidth')

This eliminates the need to hardcode the name of a fixed-width font, which maynot display text properly on systems that do not use ASCII character encoding(such as in Japan where multibyte character sets are used). A properly writtenMATLAB application that needs to use a fixed-width font should set FontNameto FixedWidth (note that this string is case sensitive) and rely onFixedWidthFontName to be set correctly in the end-user’s environment.

End users can adapt a MATLAB application to different locales or personalenvironments by setting the root FixedWidthFontName property to theappropriate value for that locale from startup.m.

Note that setting the root FixedWidthFontName property causes an immediateupdate of the display to use the new font.

FontSize Font size specified in FontUnits

Font size. An integer specifying the font size to use for axes labels and titles, inunits determined by the FontUnits property. The default point size is 12. Thex-, y-, and z-axis text labels do not display in a new font size until you manuallyreset them (by setting the XLabel, YLabel, or ZLabel properties or by using thexlabel, ylabel, or zlabel command). Tick mark labels change immediately.

FontUnits {points} | normalized | inches |centimeters | pixels

Units used to interpret the FontSize property. When set to normalized,MATLAB interprets the value of FontSize as a fraction of the height of theaxes. For example, a normalized FontSize of 0.1 sets the text characters to a

70

Page 121: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

font whose height is one tenth of the axes’ height. The default units (points),are equal to 1/72 of an inch.

FontWeight {normal} | bold | light | demi

Select bold or normal font. The character weight for axes text. The x-, y-, andz-axis text labels do not display in bold until you manually reset them (bysetting the XLabel, YLabel, and ZLabel properties or by using the xlabel,ylabel, or zlabel commands). Tick mark labels change immediately.

GridLineStyle − | − −| {:} | −. | none

Line style used to draw grid lines. The line style is a string consisting of acharacter, in quotes, specifying solid lines (−), dashed lines (−−), dotted lines(:),or dash-dot lines (−.). The default grid line style is dotted. To turn on grid lines,use the grid command.

HandleVisibility {on} | callback | off

Control access to object’s handle by command-line users and GUIs. Thisproperty determines when an object’s handle is visible in its parent’s list ofchildren. HandleVisibility is useful for preventing command-line users fromaccidentally drawing into or deleting a figure that contains only user interfacedevices (such as a dialog box).

Handles are always visible when HandleVisibility is on.

Setting HandleVisibility to callback causes handles to be visible fromwithin callback routines or functions invoked by callback routines, but not fromwithin functions invoked from the command line. This provides a means toprotect GUIs from command-line users, while allowing callback routines tohave complete access to object handles.

Setting HandleVisibility to off makes handles invisible at all times. Thismay be necessary when a callback routine invokes a function that mightpotentially damage the GUI (such as evaluating a user-typed string) and sotemporarily hides its own handles during the execution of that function.

When a handle is not visible in its parent’s list of children, it cannot be returnedby functions that obtain handles by searching the object hierarchy or queryinghandle properties. This includes get, findobj, gca, gcf, gco, newplot, cla, clf,and close.

71

Page 122: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

When a handle’s visibility is restricted using callback or off, the object’shandle does not appear in its parent’s Children property, figures do not appearin the Root’s Currentfigure property, objects do not appear in the Root’sCallbackObject property or in the figure’s CurrentObject property, and axesdo not appear in their parent’s Currentaxes property.

You can set the Root ShowHiddenHandles property to on to make all handlesvisible, regardless of their HandleVisibility settings (this does not affect thevalues of the HandleVisibility properties).

Handles that are hidden are still valid. If you know an object’s handle, you canset and get its properties, and pass it to any function that operates on handles.

HitTest {on} | off

Selectable by mouse click. HitTest determines if the axes can become thecurrent object (as returned by the gco command and the figure CurrentObjectproperty) as a result of a mouse click on the axes. If HitTest is off, clicking onthe axes selects the object below it (which is usually the figure containing it).

Interruptible {on} | off

Callback routine interruption mode. The Interruptible property controlswhether an axes callback routine can be interrupted by subsequently invokedcallback routines. Only callback routines defined for the ButtonDownFcn areaffected by the Interruptible property. MATLAB checks for events that caninterrupt a callback routine only when it encounters a drawnow, figure,getframe, or pause command in the routine. See the BusyAction property forrelated information.

Setting Interruptible to on allows any graphics object’s callback routine tointerrupt callback routines originating from an axes property. Note thatMATLAB does not save the state of variables or the display (e.g., the handlereturned by the gca or gcf command) when an interruption occurs.

Layer {bottom} | top

Draw axis lines below or above graphics objects. This property determines ifaxis lines and tick marks draw on top or below axes children objects for any 2-Dview (i.e., when you are looking along the x-, y-, or z-axis). This is useful forplacing grid lines and tick marks on top of images.

72

Page 123: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

LineStyleOrder LineSpec

Order of line styles and markers used in a plot. This property specifies whichline styles and markers to use and in what order when creating multiple-lineplots. For example,

set(gca,'LineStyleOrder', '−*|:|o')

sets LineStyleOrder to solid line with asterisk marker, dotted line, and hollowcircle marker. The default is (−), which specifies a solid line for all data plotted.Alternatively, you can create a cell array of character strings to define the linestyles:

set(gca,'LineStyleOrder',{'−*',':','o'})

MATLAB supports four line styles, which you can specify any number of timesin any order. MATLAB cycles through the line styles only after using all colorsdefined by the ColorOrder property. For example, the first eight lines plotteduse the different colors defined by ColorOrder with the first line style.MATLAB then cycles through the colors again, using the second line stylespecified, and so on.

You can also specify line style and color directly with the plot and plot3functions or by altering the properties of the line objects.

Note that, if the axes NextPlot property is set to replace (the default),high-level functions like plot reset the LineStyleOrder property beforedetermining the line style to use. If you want MATLAB to use aLineStyleOrder that is different from the default, set NextPlot toreplacechildren. You can also specify your own default LineStyleOrder.

LineWidth linewidth in points

Width of axis lines. This property specifies the width, in points, of the x-, y-, andz-axis lines. The default line width is 0.5 points (1 point = 1/72 inch).

NextPlot add | {replace} | replacechildren

Where to draw the next plot. This property determines how high-level plottingfunctions draw into an existing axes.

• add — use the existing axes to draw graphics objects.

• replace — reset all axes properties, except Position, to their defaults anddelete all axes children before displaying graphics (equivalent to cla reset).

73

Page 124: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

• replacechildren— remove all child objects, but do not reset axes properties(equivalent to cla).

The newplot function simplifies the use of the NextPlot property and is usedby M-file functions that draw graphs using only low-level object creationroutines. See the M-file pcolor.m for an example. Note that figure graphicsobjects also have a NextPlot property.

Parent figure handle

Axes parent. The handle of the axes’ parent object. The parent of an axes objectis the figure in which it is displayed. The utility function gcf returns the handleof the current axes’ Parent. You can reparent axes to other figure objects.

PlotBoxAspectRatio [px py pz]

Relative scaling of axes plotbox. A three-element vector controlling the relativescaling of the plot box in the x-, y-, and z-directions. The plot box is a boxenclosing the axes data region as defined by the x-, y-, and z-axis limits.

Note that the PlotBoxAspectRatio property interacts with theDataAspectRatio, XLimMode, YLimMode, and ZLimMode properties to control theway graphics objects are displayed in the axes. Setting thePlotBoxAspectRatio disables stretch-to-fill behavior, ifDataAspectRatioMode, PlotBoxAspectRatioMode, and CameraViewAngleModeare all auto.

PlotBoxAspectRatioMode{auto} | manual

User or MATLAB controlled axis scaling. This property controls whether thevalues of the PlotBoxAspectRatio property are user defined or selectedautomatically by MATLAB. Setting values for the PlotBoxAspectRatioproperty automatically sets this property to manual. Changing thePlotBoxAspectRatioMode to manual disables stretch-to-fill behavior, ifDataAspectRatioMode, PlotBoxAspectRatioMode, and CameraViewAngleModeare all auto.

Position four-element vector

Position of axes. A four-element vector specifying a rectangle that locates theaxes within the figure window. The vector is of the form:

[left bottom width height]

74

Page 125: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

where left and bottom define the distance from the lower-left corner of thefigure window to the lower-left corner of the rectangle. width and height arethe dimensions of the rectangle. All measurements are in units specified by theUnits property.

When axes stretch-to-fill behavior is enabled (when DataAspectRatioMode,PlotBoxAspectRatioMode, CameraViewAngleMode are all auto), the axes arestretched to fill the Position rectangle. When stretch-to-fill is disabled, theaxes are made as large as possible, while obeying all other properties, withoutextending outside the Position rectangle

Projection {orthographic} | perspective

Type of projection. This property selects between two projection types:

• orthographic – This projection maintains the correct relative dimensions ofgraphics objects with regard to the distance a given point is from the viewer.Parallel lines in the data are drawn parallel on the screen.

• perspective – This projection incorporates foreshortening, which allows youto perceive depth in 2-D representations of 3-D objects. Perspectiveprojection does not preserve the relative dimensions of objects; a distant linesegment displays smaller than a nearer line segment of the same length.Parallel lines in the data may not appear parallel on screen.

Selected on | off

Is object selected. When you set this property to on, MATLAB displays selection“handles” at the corners and midpoints if the SelectionHighlight property isalso on (the default). You can, for example, define the ButtonDownFcn callbackroutine to set this property to on, thereby indicating that the axes has beenselected.

SelectionHighlight {on} | off

Objects highlight when selected. When the Selected property is on, MATLABindicates the selected state by drawing four edge handles and four cornerhandles. When SelectionHighlight is off, MATLAB does not draw thehandles.

Tag string (GUIDE sets this property)

User-specified object label. The Tag property provides a means to identifygraphics objects with a user-specified label. This is particularly useful whenconstructing interactive graphics programs that would otherwise need to

75

Page 126: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

define object handles as global variables or pass them as arguments betweencallback routines.

For example, suppose you want to direct all graphics output from an M-file toa particular axes, regardless of user actions that may have changed the currentaxes. To do this, identify the axes with a Tag:

axes('Tag','Special Axes')

Then make that axes the current axes before drawing by searching for the Tagwith findobj:

axes(findobj('Tag','Special Axes'))

TickDir in | out

Direction of tick marks. For 2-D views, the default is to direct tick marksinward from the axis lines; 3-D views direct tick marks outward from the axisline.

TickDirMode {auto} | manual

Automatic tick direction control. In auto mode, MATLAB directs tick marksinward for 2-D views and outward for 3-D views. When you specify a setting forTickDir, MATLAB sets TickDirMode to manual. In manual mode, MATLABdoes not change the specified tick direction.

TickLength [2DLength 3DLength]

Length of tick marks. A two-element vector specifying the length of axes tickmarks. The first element is the length of tick marks used for 2-D views and thesecond element is the length of tick marks used for 3-D views. Specify tick marklengths in units normalized relative to the longest of the visible X-, Y-, or Z-axisannotation lines.

Title handle of text object

Axes title. The handle of the text object that is used for the axes title. You canuse this handle to change the properties of the title text or you can set Title tothe handle of an existing text object. For example, the following statementchanges the color of the current title to red:

set(get(gca,'Title'),'Color','r')

To create a new title, set this property to the handle of the text object you wantto use:

76

Page 127: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

set(gca,'Title',text('String','New Title','Color','r'))

However, it is generally simpler to use the title command to create or replacean axes title:

title('New Title','Color','r')

Type string (read only)

Type of graphics object. This property contains a string that identifies the classof graphics object. For axes objects, Type is always set to 'axes'.

UIContextMenu handle of a uicontextmenu object

Associate a context menu with the axes. Assign this property the handle of aUicontextmenu object created in the axes’ parent figure. Use theuicontextmenu function to create the context menu. MATLAB displays thecontext menu whenever you right-click over the axes.

Units inches | centimeters | {normalized} |points | pixels | characters

Position units. The units used to interpret the Position property. All units aremeasured from the lower-left corner of the figure window.

• normalized units map the lower-left corner of the figure window to (0,0) andthe upper-right corner to (1.0, 1.0).

• inches, centimeters, and points are absolute units (one point equals 1/72 ofan inch).

• Character units are defined by characters from the default system font; thewidth of one character is the width of the letter x, the height of one characteris the distance between the baselines of two lines of text.

UserData matrix

User specified data. This property can be any data you want to associate withthe axes object. The axes does not use this property, but you can access it usingthe set and get functions.

View Obsolete

The functionality provided by the View property is now controlled by the axescamera properties – CameraPosition, CameraTarget, CameraUpVector, andCameraViewAngle. See the view command.

77

Page 128: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

Visible {on} | off

Visibility of axes. By default, axes are visible. Setting this property to offprevents axis lines, tick marks, and labels from being displayed. The visibleproperty does not affect children of axes.

XAxisLocation top | {bottom}

Location of x-axis tick marks and labels. This property controls whereMATLAB displays the x-axis tick marks and labels. Setting this property to topmoves the x-axis to the top of the plot from its default position at the bottom.

YAxisLocation right | {left}

Location of y-axis tick marks and labels. This property controls whereMATLAB displays the y-axis tick marks and labels. Setting this property toright moves the y-axis to the right side of the plot from its default position onthe left side. See the plotyy function for a simple way to use two y-axes.

Properties That Control the X-, Y-, or Z-AxisXColor, YColor, ZColorColorSpec

Color of axis lines. A three-element vector specifying an RGB triple, or apredefined MATLAB color string. This property determines the color of the axislines, tick marks, tick mark labels, and the axis grid lines of the respective x-,y-, and z-axis. The default axis color is white. See ColorSpec for details onspecifying colors.

XDir, YDir, ZDir {normal} | reverse

Direction of increasing values. A mode controlling the direction of increasingaxis values. axes form a right-hand coordinate system. By default:

• x-axis values increase from left to right. To reverse the direction of increasingx values, set this property to reverse.set(gca,'XDir','reverse')

• y-axis values increase from bottom to top (2-D view) or front to back (3-Dview). To reverse the direction of increasing y values, set this property toreverse.set(gca,'YDir','reverse')

78

Page 129: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

• z-axis values increase pointing out of the screen (2-D view) or from bottom totop (3-D view). To reverse the direction of increasing z values, set thisproperty to reverse.

set(gca,'ZDir','reverse')

XGrid, YGrid, ZGrid on | {off}

Axis gridline mode. When you set any of these properties to on, MATLAB drawsgrid lines perpendicular to the respective axis (i.e., along lines of constant x, y,or z values). Use the grid command to set all three properties on or off at once.

set(gca,'XGrid','on')

XLabel, YLabel, ZLabelhandle of text object

Axis labels. The handle of the text object used to label the x, y, or z-axis,respectively. To assign values to any of these properties, you must obtain thehandle to the text string you want to use as a label. This statement defines atext object and assigns its handle to the XLabel property:

set(gca,'Xlabel',text('String','axis label'))

MATLAB places the string 'axis label' appropriately for an x-axis label. Anytext object whose handle you specify as an XLabel, YLabel, or ZLabel propertyis moved to the appropriate location for the respective label.

Alternatively, you can use the xlabel, ylabel, and zlabel functions, whichgenerally provide a simpler means to label axis lines.

XLim, YLim, ZLim [minimum maximum]

Axis limits. A two-element vector specifying the minimum and maximumvalues of the respective axis.

Changing these properties affects the scale of the x-, y-, or z-dimension as wellas the placement of labels and tick marks on the axis. The default values forthese properties are [0 1].

XLimMode, YLimMode, ZLimMode{auto} | manual

MATLAB or user-controlled limits. The axis limits mode determines whetherMATLAB calculates axis limits based on the data plotted (i.e., the XData,YData, or ZData of the axes children) or uses the values explicitly set with theXLim, YLim, or ZLim property, in which case, the respective limits mode is set tomanual.

79

Page 130: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

XScale, YScale, ZScale{linear} | log

Axis scaling. Linear or logarithmic scaling for the respective axis. See alsologlog, semilogx, and semilogy.

XTick, YTick, ZTickvector of data values locating tick marks

Tick spacing. A vector of x-, y-, or z-data values that determine the location oftick marks along the respective axis. If you do not want tick marks displayed,set the respective property to the empty vector, [ ]. These vectors must containmonotonically increasing values.

XTickLabel, YTickLabel, ZTickLabelstring

Tick labels. A matrix of strings to use as labels for tick marks along therespective axis. These labels replace the numeric labels generated byMATLAB. If you do not specify enough text labels for all the tick marks,MATLAB uses all of the labels specified, then reuses the specified labels.

For example, the statement,

set(gca,'XTickLabel',{'One';'Two';'Three';'Four'})

labels the first four tick marks on the x-axis and then reuses the labels until allticks are labeled.

Labels can be specified as cell arrays of strings, padded string matrices, stringvectors separated by vertical slash characters, or as numeric vectors (whereeach number is implicitly converted to the equivalent string using num2str).All of the following are equivalent:

set(gca,'XTickLabel',{'1';'10';'100'})set(gca,'XTickLabel','1|10|100')set(gca,'XTickLabel',[1;10;100])set(gca,'XTickLabel',['1 ';'10 ';'100'])

Note that tick labels do not interpret TeX character sequences (however, theTitle, XLabel, YLabel, and ZLabel properties do).

XTickMode, YTickMode, ZTickMode{auto} | manual

MATLAB or user controlled tick spacing. The axis tick modes determinewhether MATLAB calculates the tick mark spacing based on the range of datafor the respective axis (auto mode) or uses the values explicitly set for any of

80

Page 131: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Axes Properties

the XTick, YTick, and ZTick properties (manual mode). Setting values for theXTick, YTick, or ZTick properties sets the respective axis tick mode to manual.

XTickLabelMode, YTickLabelMode, ZTickLabelMode{auto} | manual

MATLAB or user determined tick labels. The axis tick mark labeling modedetermines whether MATLAB uses numeric tick mark labels that span therange of the plotted data (auto mode) or uses the tick mark labels specifiedwith the XTickLabel, YTickLabel, or ZTickLabel property (manual mode).Setting values for the XTickLabel, YTickLabel, or ZTickLabel property setsthe respective axis tick label mode to manual.

81

Page 132: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axis

1axisPurpose Axis scaling and appearance

Syntax axis([xmin xmax ymin ymax])axis([xmin xmax ymin ymax zmin zmax cmin cmax])v = axis

axis autoaxis manualaxis tightaxis fill

axis ijaxis xy

axis equalaxis imageaxis squareaxis vis3daxis normal

axis offaxis on[mode,visibility,direction] = axis('state')

Description axis manipulates commonly used axes properties. (See Algorithm section.)

axis([xmin xmax ymin ymax]) sets the limits for the x- and y-axis of thecurrent axes.

axis([xmin xmax ymin ymax zmin zmax cmin cmax]) sets the x-, y-, andz-axis limits and the color scaling limits (see caxis) of the current axes.

v = axis returns a row vector containing scaling factors for the x-, y-, andz-axis. v has four or six components depending on whether the current axes is2-D or 3-D, respectively. The returned values are the current axes’ XLim, Ylim,and ZLim properties.

82

Page 133: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axis

axis auto sets MATLAB to its default behavior of computing the current axes’limits automatically, based on the minimum and maximum values of x, y, andz data. You can restrict this automatic behavior to a specific axis. For example,axis 'auto x' computes only the x-axis limits automatically; axis 'auto yz'computes the y- and z-axis limits automatically.

axis manual and axis(axis) freezes the scaling at the current limits, so thatif hold is on, subsequent plots use the same limits. This sets the XLimMode,YLimMode, and ZLimMode properties to manual.

axis tight sets the axis limits to the range of the data.

axis fill sets the axis limits to the range of the data.

axis ij places the coordinate system origin in the upper-left corner. The i-axisis vertical, with values increasing from top to bottom. The j-axis is horizontalwith values increasing from left to right.

axis xy draws the graph in the default Cartesian axes format with thecoordinate system origin in the lower-left corner. The x-axis is horizontal withvalues increasing from left to right. The y-axis is vertical with valuesincreasing from bottom to top.

axis equal sets the aspect ratio so that the data units are the same in everydirection. The aspect ratio of the x-, y-, and z-axis is adjusted automaticallyaccording to the range of data units in the x, y, and z directions.

axis image is the same as axis equal except that the plot box fits tightlyaround the data.

axis square makes the current axes region square (or cubed whenthree-dimensional). MATLAB adjusts the x-axis, y-axis, and z-axis so that theyhave equal lengths and adjusts the increments between data units accordingly.

axis vis3d freezes aspect ratio properties to enable rotation of 3-D objects andoverrides stretch-to-fill.

axis normal automatically adjusts the aspect ratio of the axes and the aspectratio of the data units represented on the axes to fill the plot box.

83

Page 134: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axis

axis off turns off all axis lines, tick marks, and labels.

axis on turns on all axis lines, tick marks, and labels.

[mode,visibility,direction] = axis('state') returns three stringsindicating the current setting of axes properties:

mode is auto if XLimMode, YLimMode, and ZLimMode are all set to auto. IfXLimMode, YLimMode, or ZLimMode is manual, mode is manual.

Examples The statements

x = 0:.025:pi/2;plot(x,tan(x),'-ro')

Output Argument Strings Returned

mode 'auto' | 'manual'

visibility 'on' | 'off'

direction 'xy' | 'ij'

84

Page 135: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axis

use the automatic scaling of the y-axis based on ymax = tan(1.57), which iswell over 1000:

The right figure shows a more satisfactory plot after typing

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.60

200

400

600

800

1000

1200

1400

85

Page 136: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axis

axis([0 pi/2 0 5])

Algorithm When you specify minimum and maximum values for the x-, y-, and z-axes,axis sets the XLim, Ylim, and ZLim properties for the current axes to therespective minimum and maximum values in the argument list. Additionally,the XLimMode, YLimMode, and ZLimMode properties for the current axes are setto manual.

axis auto sets the current axes’ XLimMode, YLimMode, and ZLimMode propertiesto 'auto'.

axis manual sets the current axes’ XLimMode, YLimMode, and ZLimModeproperties to 'manual'.

0 0.5 1 1.50

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

86

Page 137: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

axis

The following table shows the values of the axes properties set by axis equal,axis normal, axis square, and axis image.

See Also axes, get, grid, set, subplot

Properties of axes graphics objects

Axes Property axis equal axis normal axis square axis tightequal

DataAspectRatio [1 1 1] not set not set [1 1 1]

DataAspectRatioMode manual auto auto manual

PlotBoxAspectRatio [3 4 4] not set [1 1 1] auto

PlotBoxAspectRatioMode manual auto manual auto

Stretch-to-fill disabled active disabled disabled

87

Page 138: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

balance

1balancePurpose Improve accuracy of computed eigenvalues

Syntax [T,B] = balance(A)B = balance(A)

Description [T,B] = balance(A) returns a permutation of a diagonal matrix T whoseelements are integer powers of two, and a balanced matrix B so that B = T\A∗T.If A is symmetric, then B == A and T is the identity matrix.

B = balance(A) returns just the balanced matrix B.

Remarks Nonsymmetric matrices can have poorly conditioned eigenvalues. Smallperturbations in the matrix, such as roundoff errors, can lead to largeperturbations in the eigenvalues. The quantity which relates the size of thematrix perturbation to the size of the eigenvalue perturbation is the conditionnumber of the eigenvector matrix,

cond(V) = norm(V)∗norm(inv(V))

where

[V,T] = eig(A)

(The condition number of A itself is irrelevant to the eigenvalue problem.)

Balancing is an attempt to concentrate any ill conditioning of the eigenvectormatrix into a diagonal scaling. Balancing usually cannot turn a nonsymmetricmatrix into a symmetric matrix; it only attempts to make the norm of each rowequal to the norm of the corresponding column. Furthermore, the diagonalscale factors are limited to powers of two so they do not introduce any roundofferror.

MATLAB’s eigenvalue function, eig(A), automatically balances A beforecomputing its eigenvalues. Turn off the balancing with eig(A,'nobalance').

Examples This example shows the basic idea. The matrix A has large elements in theupper right and small elements in the lower left. It is far from being symmetric.

A = [1 100 10000; .01 1 100; .0001 .01 1]A =

1.0e+04 ∗0.0001 0.0100 1.0000

88

Page 139: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

balance

0.0000 0.0001 0.01000.0000 0.0000 0.0001

Balancing produces a diagonal T matrix with elements that are powers of twoand a balanced matrix B that is closer to symmetric than A.

[T,B] = balance(A)T =

1.0e+03 ∗2.0480 0 0

0 0.0320 00 0 0.0003

B =1.0000 1.5625 1.22070.6400 1.0000 0.78130.8192 1.2800 1.0000

To see the effect on eigenvectors, first compute the eigenvectors of A.

[V,E] = eig(A); VV =

-1.0000 0.9999 0.99370.0050 0.0100 -0.11200.0000 0.0001 0.0010

Note that all three vectors have the first component the largest. This indicatesV is badly conditioned; in fact cond(V) is 8.7766e+003. Next, look at theeigenvectors of B.

[V,E] = eig(B); VV =

-0.8873 0.6933 0.0898 0.2839 0.4437 -0.6482 0.3634 0.5679 -0.7561

Now the eigenvectors are well behaved and cond(V) is 1.4421. The illconditioning is concentrated in the scaling matrix; cond(T) is 8192.

This example is small and not really badly scaled, so the computed eigenvaluesof A and B agree within roundoff error; balancing has little effect on thecomputed results.

89

Page 140: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

balance

Algorithm The eig function automatically uses balancing to prepare its input matrix.balance uses LAPACK routines DGEBAL (real) and ZGEBAL (complex). If yourequest the output T, it also uses the LAPACK routines DGEBAK (real) andZGEBAK (complex).

Limitations Balancing can destroy the properties of certain matrices; use it with some care.If a matrix contains small elements that are due to roundoff error, balancingmay scale them up to make them as significant as the other elements of theoriginal matrix.

See Also condeig, eig, hess, schur

References [1] Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. DuCroz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen,LAPACK User’s Guide, Third Edition, SIAM, Philadelphia, 1999.

90

Page 141: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar, barh

1bar, barhPurpose Bar chart

Syntax bar(Y)bar(x,Y)bar(...,width)bar(...,'style')bar(...,LineSpec)[xb,yb] = bar(...)h = bar(...)

barh(...)[xb,yb] = barh(...)h = barh(...)

Description A bar chart displays the values in a vector or matrix as horizontal or verticalbars.

bar(Y) draws one bar for each element in Y. If Y is a matrix, bar groups the barsproduced by the elements in each row. The x-axis scale ranges from 1 tolength(Y) when Y is a vector, and 1 to size(Y,1), which is the number of rows,when Y is a matrix.

bar(x,Y) draws a bar for each element in Y at locations specified in x, where xis a monotonically increasing vector defining the x-axis intervals for thevertical bars. If Y is a matrix, bar clusters the elements in the same row in Y atlocations corresponding to an element in x.

bar(...,width) sets the relative bar width and controls the separation of barswithin a group. The default width is 0.8, so if you do not specify x, the barswithin a group have a slight separation. If width is 1, the bars within a grouptouch one another.

bar(...,'style') specifies the style of the bars. 'style' is 'group' or'stack'. 'group' is the default mode of display.

• 'group' displays n groups of m vertical bars, where n is the number of rowsand m is the number of columns in Y. The group contains one bar per columnin Y.

91

Page 142: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar, barh

• 'stack' displays one bar for each row in Y. The bar height is the sum of theelements in the row. Each bar is multi-colored, with colors corresponding todistinct elements and showing the relative contribution each row elementmakes to the total sum.

bar(...,LineSpec) displays all bars using the color specified by LineSpec.

[xb,yb] = bar(...) returns vectors that you plot using plot(xb,yb) orpatch(xb,yb,C). This gives you greater control over the appearance of a graph,for example, to incorporate a bar chart into a more elaborate plot statement.

h = bar(...) returns a vector of handles to patch graphics objects. bar createsone patch graphics object per column in Y.

barh(...), [xb,yb] = barh(...), and h = barh(...) create horizontalbars. Y determines the bar length. The vector x is a monotonic vector definingthe y-axis intervals for horizontal bars.

Examples Plot a bell shaped curve:

x = –2.9:0.2:2.9;bar(x,exp(–x.*x))colormap hsv

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

92

Page 143: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar, barh

Create four subplots showing the effects of various bar arguments:

Y = round(rand(5,3)*10);subplot(2,2,1)bar(Y,'group')title 'Group'

subplot(2,2,2)bar(Y,'stack')title 'Stack'

subplot(2,2,3)barh(Y,'stack')title 'Stack'

subplot(2,2,4)bar(Y,1.5)title 'Width = 1.5'

93

Page 144: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar, barh

See Also bar3, ColorSpec, patch, stairs, hist

1 2 3 4 50

2

4

6

8

10Group

1 2 3 4 50

5

10

15

20

25Stack

0 5 10 15 20 25

1

2

3

4

5

Stack

1 2 3 4 50

2

4

6

8

10Width = 1.5

94

Page 145: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar3, bar3h

1bar3, bar3hPurpose Three-dimensional bar chart

Syntax bar3(Y)bar3(x,Y)bar3(...,width)bar3(...,'style')bar3(...,LineSpec)h = bar3(...)

bar3h(...)h = bar3h(...)

Description bar3 and bar3h draw three-dimensional vertical and horizontal bar charts.

bar3(Y) draws a three-dimensional bar chart, where each element in Ycorresponds to one bar. When Y is a vector, the x-axis scale ranges from 1 tolength(Y). When Y is a matrix, the x-axis scale ranges from 1 to size(Y,2),which is the number of columns, and the elements in each row are groupedtogether.

bar3(x,Y) draws a bar chart of the elements in Y at the locations specified inx, where x is a monotonic vector defining the y-axis intervals for vertical bars.If Y is a matrix, bar3 clusters elements from the same row in Y at locationscorresponding to an element in x. Values of elements in each row are groupedtogether.

bar3(...,width) sets the width of the bars and controls the separation of barswithin a group. The default width is 0.8, so if you do not specify x, bars withina group have a slight separation. If width is 1, the bars within a group touchone another.

bar3(...,'style') specifies the style of the bars. 'style' is 'detached','grouped', or 'stacked'. 'detached' is the default mode of display.

• 'detached' displays the elements of each row in Y as separate blocks behindone another in the x direction.

• 'grouped' displays n groups of m vertical bars, where n is the number ofrows and m is the number of columns in Y. The group contains one bar percolumn in Y.

95

Page 146: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar3, bar3h

• 'stacked' displays one bar for each row in Y. The bar height is the sum ofthe elements in the row. Each bar is multi-colored, with colors correspondingto distinct elements and showing the relative contribution each row elementmakes to the total sum.

bar3(...,LineSpec) displays all bars using the color specified by LineSpec.

h = bar3(...) returns a vector of handles to patch graphics objects. bar3creates one patch object per column in Y.

bar3h(...) and h = bar3h(...) create horizontal bars. Y determines the barlength. The vector x is a monotonic vector defining the y-axis intervals forhorizontal bars.

Examples This example creates six subplots showing the effects of different arguments forbar3. The data Y is a seven-by-three matrix generated using the cool colormap:

Y = cool(7);subplot(3,2,1)bar3(Y,’detached’)title(‘Detached’)

subplot(3,2,2)bar3(Y,0.25,’detached’)title(‘Width = 0.25’)

subplot(3,2,3)bar3(Y,’grouped’)title(‘Grouped’)

subplot(3,2,4)bar3(Y,0.5,’grouped’)title(‘Width = 0.5’)

96

Page 147: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar3, bar3h

subplot(3,2,5)bar3(Y,’stacked’)title(‘Stacked’)

subplot(3,2,6)bar3(Y,0.3,’stacked’)title(‘Width = 0.3’)

colormap([1 0 0;0 1 0;0 0 1])

97

Page 148: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bar3, bar3h

See Also bar, LineSpec, patch

12

34

56

7

0

0.5

1

Detached

12

34

56

7

0

0.5

1

Width = 0.25

12

34

56

7

0

0.5

1Grouped

12

34

56

7

0

0.5

1Width = 0.5

12

34

56

7

0

0.5

1

1.5

2Stacked

12

34

56

7

0

0.5

1

1.5

2Width = 0.3

98

Page 149: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

base2dec

1base2decPurpose Base to decimal number conversion

Syntax d = base2dec('strn',base)

Description d = base2dec('strn',base) converts the string number strn of the specifiedbase into its decimal (base 10) equivalent. base must be an integer between 2and 36. If 'strn' is a character array, each row is interpreted as a string in thespecified base.

Examples The expression base2dec('212',3) converts 2123 to decimal, returning 23.

See Also dec2base

99

Page 150: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

beep

1beepPurpose Produce a beep sound

Syntax beepbeep onbeep offs = beep

Description beep produces you computer’s default beep sound

beep on turns the beep on

beep off turn the beep off

s = beep returns the current beep mode ( on or off)

100

Page 151: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besselh

1besselhPurpose Bessel functions of the third kind (Hankel functions)

Syntax H = besselh(nu,K,Z)H = besselh(nu,Z)H = besselh(nu,1,Z,1)H = besselh(nu,2,Z,1)[H,ierr] = besselh(...)

Definitions The differential equation

where ν is a nonnegative constant, is called Bessel’s equation, and its solutionsare known as Bessel functions. and form a fundamental set ofsolutions of Bessel’s equation for noninteger ν. is a second solution ofBessel’s equation—linearly independent of — defined by:

The relationship between the Hankel and Bessel functions is:

Description H = besselh(nu,K,Z) for K = 1 or 2 computes the Hankel functions

or for each element of the complex array Z. If nu and Z arearrays of the same size, the result is also that size. If either input is a scalar, itis expanded to the other input's size. If one input is a row vector and the otheris a column vector, the result is a two-dimensional table of function values.

H = besselh(nu,Z) uses K = 1.

H = besselh(nu,1,Z,1) scales by exp(-i∗z).

H = besselh(nu,2,Z,1) scales by exp(+i∗z).

z2

z2

2

d

d y z dydz------- z2 ν2

–( ) y+ + 0=

Jν z( ) J ν– z( )Y ν z( )

Jν z( )

Y ν z( )Jν z( ) νπ( )cos J ν– z( )–

νπ( )sin-----------------------------------------------------------=

Hν1( ) z( ) Jν z( ) i Y ν z( )+=

Hν1( ) z( ) Hν

2( ) z( )

Hν1( ) z( )

Hν2( ) z( )

101

Page 152: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besselh

[H,ierr] = besselh(...) also returns an array of error flags:

ierr = 1 Illegal arguments.

ierr = 2 Overflow. Return Inf.

ierr = 3 Some loss of accuracy in argument reduction.

ierr = 4 Unacceptable loss of accuracy, Z or nu too large.

ierr = 5 No convergence. Return NaN.

102

Page 153: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besseli, besselk

1besseli, besselkPurpose Modified Bessel functions

Syntax I = besseli(nu,Z) Modified Bessel function of the 1st kindK = besselk(nu,Z) Modified Bessel function of the 2nd kindI = besseli(nu,Z,1)K = besselk(nu,Z,1)[I,ierr] = besseli(...)[K,ierr] = besselk(...)

Definitions The differential equation

where ν is a real constant, is called the modified Bessel’s equation, and itssolutions are known as modified Bessel functions.

and form a fundamental set of solutions of the modified Bessel’sequation for noninteger ν. is a second solution, independent of .

and are defined by:

Description I = besseli(nu,Z) computes modified Bessel functions of the first kind,for each element of the array Z. The order nu need not be an integer, but

must be real. The argument Z can be complex. The result is real where Z ispositive.

If nu and Z are arrays of the same size, the result is also that size. If either inputis a scalar, it is expanded to the other input's size. If one input is a row vectorand the other is a column vector, the result is a two-dimensional table offunction values.

z2z2

2

d

d y z dydz------- z2 ν2+( ) y–+ 0=

Iν z( ) I ν– z( )K ν z( ) Iν z( )

Iν z( ) K ν z( )

Iν z( ) z2---

ν z2

4-----

k

k! Γ ν k 1+ +( )----------------------------------------,k 0=

∞∑=

K ν z( ) π2---

I ν– z( ) Iν z( )–

νπ( )sin------------------------------------=

where Γ a( ) is the gamma function

Iν z( ),

103

Page 154: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besseli, besselk

K = besselk(nu,Z) computes modified Bessel functions of the second kind, for each element of the complex array Z.

I = besseli(nu,Z,1) computes besseli(nu,Z).∗exp(-abs(real(Z))).

K = besselk(nu,Z,1) computes besselk(nu,Z).∗exp(Z).

[I,ierr] = besseli(...) and [K,ierr] = besselk(...) also return anarray of error flags.

Examples format longz = (0:0.2:1)';

besseli(1,z)

ans = 0 0.10050083402813 0.20402675573357 0.31370402560492 0.43286480262064 0.56515910399249

besselk(1,z)

ans = Inf 4.77597254322047 2.18435442473269 1.30283493976350 0.86178163447218 0.60190723019723

ierr = 1 Illegal arguments.

ierr = 2 Overflow. Return Inf.

ierr = 3 Some loss of accuracy in argument reduction.

ierr = 4 Unacceptable loss of accuracy, Z or nu too large.

ierr = 5 No convergence. Return NaN.

K ν z( ),

104

Page 155: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besseli, besselk

besseli(3:9,(0:.2,10)',1) generates the entire table on page 423 ofAbramowitz and Stegun, Handbook of Mathematical Functions.

besselk(3:9,(0:.2:10)',1) generates part of the table on page 424 ofAbramowitz and Stegun, Handbook of Mathematical Functions.

Algorithm The besseli and besselk functions use a Fortran MEX-file to call a librarydeveloped by D. E. Amos [3] [4].

See Also airy, besselj, bessely

References [1] Abramowitz, M. and I.A. Stegun, Handbook of Mathematical Functions,National Bureau of Standards, Applied Math. Series #55, Dover Publications,1965, sections 9.1.1, 9.1.89 and 9.12, formulas 9.1.10 and 9.2.5.

[2] Carrier, Krook, and Pearson, Functions of a Complex Variable: Theory andTechnique, Hod Books, 1983, section 5.5.

[3] Amos, D. E., “A Subroutine Package for Bessel Functions of a ComplexArgument and Nonnegative Order,” Sandia National Laboratory Report,SAND85-1018, May, 1985.

[4] Amos, D. E., “A Portable Package for Bessel Functions of a ComplexArgument and Nonnegative Order,” Trans. Math. Software, 1986.

105

Page 156: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besselj, bessely

1besselj, besselyPurpose Bessel functions

Syntax J = besselj(nu,Z) Bessel function of the 1st kindY = bessely(nu,Z) Bessel function of the 2nd kindJ = besselj(nu,Z,1)Y = bessely(nu,Z,1)[J,ierr] = besselj(nu,Z)[Y,ierr] = bessely(nu,Z)

Definition The differential equation

where ν is a real constant, is called Bessel’s equation, and its solutions areknown as Bessel functions.

and form a fundamental set of solutions of Bessel’s equation fornoninteger ν. is defined by:

is a second solution of Bessel’s equation that is linearly independent of and defined by:

Description J = besselj(nu,Z) computes Bessel functions of the first kind, for eachelement of the complex array Z. The order nu need not be an integer, but mustbe real. The argument Z can be complex. The result is real where Z is positive.

z2

z2

2

d

d y z dydz------- z2 ν2

–( ) y+ + 0=

Jν z( ) J ν– z( )Jν z( )

Jν z( ) z2---

ν z2

4-----–

k

k! Γ ν k 1+ +( )----------------------------------------,k 0=

∞∑=

where Γ a( ) is the gamma function

Y ν z( )Jν z( )

Y ν z( )Jν z( ) νπ( )cos J ν– z( )–

νπ( )sin-----------------------------------------------------------=

Jν z( ),

106

Page 157: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besselj, bessely

If nu and Z are arrays of the same size, the result is also that size. If either inputis a scalar, it is expanded to the other input's size. If one input is a row vectorand the other is a column vector, the result is a two-dimensional table offunction values.

Y = bessely(nu,Z) computes Bessel functions of the second kind, forreal, nonnegative order nu and argument Z.

J = besselj(nu,Z,1) computes besselj(nu,Z).∗exp(-abs(imag(Z))).

Y = bessely(nu,Z,1) computes bessely(nu,Z).∗exp(-abs(imag(Z))).

[J,ierr] = besselj(nu,Z) and [Y,ierr] = bessely(nu,Z) also return anarray of error flags.

Remarks The Bessel functions are related to the Hankel functions, also called Besselfunctions of the third kind:

where is besselj, and is bessely. The Hankel functions also forma fundamental set of solutions to Bessel’s equation (see besselh).

Examples format longz = (0:0.2:1)';

besselj(1,z)

ans =

ierr = 1 Illegal arguments.

ierr = 2 Overflow. Return Inf.

ierr = 3 Some loss of accuracy in argument reduction.

ierr = 4 Unacceptable loss of accuracy, Z or nu too large.

ierr = 5 No convergence. Return NaN.

Y ν z( ),

Hν1( ) z( ) Jν z( ) i Y ν z( )+=

Hν2( ) z( ) Jν z( ) i Y ν z( )–=

Jν z( ) Y ν z( )

107

Page 158: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

besselj, bessely

0 0.09950083263924 0.19602657795532 0.28670098806392 0.36884204609417 0.44005058574493

bessely(1,z)

ans = -Inf -3.32382498811185 -1.78087204427005 -1.26039134717739 -0.97814417668336 -0.78121282130029

besselj(3:9,(0:.2:10)') generates the entire table on page 398 ofAbramowitz and Stegun, Handbook of Mathematical Functions.

bessely(3:9,(0:.2:10)') generates the entire table on page 399 ofAbramowitz and Stegun, Handbook of Mathematical Functions.

Algorithm The besselj and bessely functions use a Fortran MEX-file to call a librarydeveloped by D. E. Amos [3] [4].

See Also airy, besseli, besselk

References [1] Abramowitz, M. and I.A. Stegun, Handbook of Mathematical Functions,National Bureau of Standards, Applied Math. Series #55, Dover Publications,1965, sections 9.1.1, 9.1.89 and 9.12, formulas 9.1.10 and 9.2.5.

[2] Carrier, Krook, and Pearson, Functions of a Complex Variable: Theory andTechnique, Hod Books, 1983, section 5.5.

[3] Amos, D. E., “A Subroutine Package for Bessel Functions of a ComplexArgument and Nonnegative Order,” Sandia National Laboratory Report,SAND85-1018, May, 1985.

[4] Amos, D. E., “A Portable Package for Bessel Functions of a ComplexArgument and Nonnegative Order,” Trans. Math. Software, 1986.

108

Page 159: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

beta, betainc, betaln

1beta, betainc, betalnPurpose Beta functions

Syntax B = beta(Z,W)I = betainc(X,Z,W)L = betaln(Z,W)

Definition The beta function is:

where is the gamma function. The incomplete beta function is:

Description B = beta(Z,W) computes the beta function for corresponding elements of thecomplex arrays Z and W. The arrays must be the same size (or either can bescalar).

I = betainc(X,Z,W) computes the incomplete beta function. The elements ofX must be in the closed interval

L = betaln(Z,W) computes the natural logarithm of the beta function,log(beta(Z,W)), without computing beta(Z,W). Since the beta function canrange over very large or very small values, its logarithm is sometimes moreuseful.

Examples format ratbeta((0:10)',3)

ans =

1/01/31/121/301/601/1051/168

B z w,( ) t z 1– 1 t–( )w 1– td0

1

∫ Γ z( )Γ w( )Γ z w+( )-------------------------= =

Γ z( )

Ix z w,( ) 1B z w,( )-------------------- tz 1– 1 t–( )w 1– td

0

x

∫=

0 1[ , ] .

109

Page 160: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

beta, betainc, betaln

1/2521/3601/4951/660

In this case, with integer arguments,

beta(n,3)= (n-1)!∗2!/(n+2)!= 2/(n∗(n+1)∗(n+2))

is the ratio of fairly small integers and the rational format is able to recover theexact result.

For x = 510, betaln(x,x) = -708.8616, which is slightly less thanlog(realmin). Here beta(x,x) would underflow (or be denormal).

Algorithm beta(z,w) = exp(gammaln(z)+gammaln(w)-gammaln(z+w))betaln(z,w) = gammaln(z)+gammaln(w)-gammaln(z+w)

110

Page 161: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

1bicgPurpose BiConjugate Gradients method

Syntax x = bicg(A,b)bicg(A,b,tol)bicg(A,b,tol,maxit)bicg(A,b,tol,maxit,M)bicg(A,b,tol,maxit,M1,M2)bicg(A,b,tol,maxit,M1,M2,x0)bicg(afun,b,tol,maxit,mfun1,mfun2,x0,p1,p2,...)[x,flag] = bicg(A,b,...)[x,flag,relres] = bicg(A,b,...)[x,flag,relres,iter] = bicg(A,b,...)[x,flag,relres,iter,resvec] = bicg(A,b,...)

Description x = bicg(A,b) attempts to solve the system of linear equations A*x = b for x.The n-by-n coefficient matrix A must be square and the column vector b musthave length n. A can be a function afun such that afun(x) returns A*x andafun(x,'transp') returns A'*x.

If bicg converges, a message to that effect is displayed. If bicg fails to convergeafter the maximum number of iterations or halts for any reason, a warningmessage is printed displaying the relative residual norm(b-A*x)/norm(b) andthe iteration number at which the method stopped or failed.

bicg(A,b,tol specifies the tolerance of the method. If tol is [], then bicguses the default, 1e-6.

bicg(A,b,tol,maxit) specifies the maximum number of iterations. If maxitis [], then bicg uses the default, min(n,20).

bicg(A,b,tol,maxit,M) and bicg(A,b,tol,maxit,M1,M2) use thepreconditioner M or M = M1*M2 and effectively solve the systeminv(M)*A*x = inv(M)*b for x. If M is [] then bicg applies no preconditioner.M can be a function mfun such that mfun(x) returns M\x and mfun(x,'transp')returns M'\x.

bicg(A,b,tol,maxit,M1,M2,x0) specifies the initial guess. If x0 is [], thenbicg uses the default, an all-zero vector.

111

Page 162: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

bicg(afun,b,tol,maxit,m1fun,m2fun,x0,p1,p2,...) passes parametersp1,p2,... to functions afun(x,p1,p2,...) andafun(x,p1,p2,...,'transp'), and similarly to the preconditioner functionsm1fun and m2fun.

[x,flag] = bicg(A,b,...) also returns a convergence flag.

Whenever flag is not 0, the solution x returned is that with minimal normresidual computed over all the iterations. No messages are displayed if the flagoutput is specified.

[x,flag,relres] = bicg(A,b,...) also returns the relative residualnorm(b-A*x)/norm(b). If flag is 0, relres <= tol.

[x,flag,relres,iter] = bicg(A,b,...) also returns the iteration numberat which x was computed, where 0 ≤ iter ≤ maxit.

[x,flag,relres,iter,resvec] = bicg(A,b,...) also returns a vector of theresidual norms at each iteration including norm(b-A*x0).

Examples Example 1.

n = 100;on = ones(n,1);A = spdiags([-2*on 4*on -on],-1:1,n,n);b = sum(A,2);tol = 1e-8;

Flag Convergence

0 bicg converged to the desired tolerance tol within maxititerations.

1 bicg iterated maxit times but did not converge.

2 Preconditioner M was ill-conditioned.

3 bicg stagnated. (Two consecutive iterates were the same.)

4 One of the scalar quantities calculated during bicg becametoo small or too large to continue computing.

112

Page 163: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

maxit = 15;M1 = spdiags([on/(-2) on],-1:0,n,n);M2 = spdiags([4*on -on],0:1,n,n);

x = bicg(A,b,tol,maxit,M1,M2,[]);bicg converged at iteration 9 to a solution with relativeresidual 5.3e-009

Alternatively, use this matrix-vector product function

function y = afun(x,n,transp_flag)if (nargin > 2) & strcmp(transp_flag,'transp') y = 4 * x; y(1:n-1) = y(1:n-1) - 2 * x(2:n); y(2:n) = y(2:n) - x(1:n-1);else y = 4 * x; y(2:n) = y(2:n) - 2 * x(1:n-1); y(1:n-1) = y(1:n-1) - x(2:n);end

as input to bicg.

x1 = bicg(@afun,b,tol,maxit,M1,M2,[],n);

Example 2. Start with A = west0479 and make the true solution the vector ofall ones.

load west0479;A = west0479;b = sum(A,2);

You can accurately solve A*x = b using backslash since A is not so large.

x = A \ b;norm(b-A*x) / norm(b)

ans = 1.2454e-017

Now try to solve A*x = b with bicg.

[x,flag,relres,iter,resvec] = bicg(A,b)

113

Page 164: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

flag = 1relres = 1iter = 0

The value of flag indicates that bicg iterated the default 20 times withoutconverging. The value of iter shows that the method behaved so badly that theinitial all-zero guess was better than all the subsequent iterates. The value ofrelres supports this: relres = norm(b-A*x)/norm(b) = norm(b)/norm(b) = 1.You can confirm that the unpreconditioned method oscillates rather wildly byplotting the relative residuals at each iteration.

semilogy(0:20,resvec/norm(b),'-o')xlabel('iteration number')ylabel('relative residual')

0 2 4 6 8 10 12 14 16 18 2010

0

101

102

103

104

105

iteration number

rela

tive

resi

dual

114

Page 165: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

Now, try an incomplete LU factorization with a drop tolerance of 1e-5 for thepreconditioner.

[L1,U1] = luinc(A,1e-5);Warning: Incomplete upper triangular factor has 1 zero diagonal.

It cannot be used as a preconditioner for an iterative method.

nnz(A)ans = 1887nnz(L1)ans = 5562nnz(U1)ans = 4320

The zero on the main diagonal of the upper triangular U1 indicates that U1 issingular. If you try to use it as a preconditioner,

[x,flag,relres,iter,resvec] = bicg(A,b,1e-6,20,L1,U1)

flag = 2relres = 1iter = 0resvec = 7.0557e+005

the method fails in the very first iteration when it tries to solve a system ofequations involving the singular U1 using backslash. bicg is forced to returnthe initial estimate since no other iterates were produced.

Try again with a slightly less sparse preconditioner.

[L2,U2] = luinc(A,1e-6)

nnz(L2)

115

Page 166: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

ans = 6231nnz(U2)ans = 4559

This time U2 is nonsingular and may be an appropriate preconditioner.

[x,flag,relres,iter,resvec] = bicg(A,b,1e-15,10,L2,U2)

flag = 0relres = 2.0248e-16iter = 8

and bicg converges to within the desired tolerance at iteration number 8.Decreasing the value of the drop tolerance increases the fill-in of the incompletefactors but also increases the accuracy of the approximation to the originalmatrix. Thus, the preconditioned system becomes closer toinv(U)*inv(L)*L*U*x = inv(U)*inv(L)*b, where L and U are the true LUfactors, and closer to being solved within a single iteration.

The next graph shows the progress of bicg using six different incomplete LUfactors as preconditioners. Each line in the graph is labeled with the droptolerance of the preconditioner used in bicg.

116

Page 167: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

This does not give us any idea of the time involved in creating the incompletefactors and then computing the solution. The following graph plots the droptolerance of the incomplete LU factors against the time to compute thepreconditioner, the time to iterate once the preconditioner has been computed,and their sum, the total time to solve the problem. The time to produce thefactors does not increase very quickly with the fill-in, but it does slow down theaverage time for an iteration. Since fewer iterations are performed, the totaltime to solve the problem decreases. west0479 is quite a small matrix, only139-by-139, and preconditioned bicg still takes longer than backslash.

0 1 2 3 4 5 6 7 8

10−15

10−10

10−5

100

1e−61e−81e−10

1e−12

1e−14

iteration number

rela

tive

resi

dual

117

Page 168: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicg

See Also bicgstab, cgs, gmres, lsqr, luinc, minres, pcg, qmr, symmlq

@ (function handle), \ (backslash)

References [1] Barrett, R., M. Berry, T. F. Chan, et al., Templates for the Solution of LinearSystems: Building Blocks for Iterative Methods, SIAM, Philadelphia, 1994.

10−14

10−13

10−12

10−11

10−10

10−9

10−8

10−7

10−6

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

drop tolerance of incomplete LU preconditioner

time

to p

reco

nditi

on a

nd c

onve

rge

to 1

e−12

precondition and iterateiterate compute preconditioner

118

Page 169: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicgstab

1bicgstabPurpose BiConjugate Gradients Stabilized method

Syntax x = bicgstab(A,b)bicgstab(A,b,tol)bicgstab(A,b,tol,maxit)bicgstab(A,b,tol,maxit,M)bicgstab(A,b,tol,maxit,M1,M2)bicgstab(A,b,tol,maxit,M1,M2,x0)bicgstab(afun,b,tol,maxit,m1fun,m2fun,x0,p1,p2,...)[x,flag] = bicgstab(A,b,...)[x,flag,relres] = bicgstab(A,b,...)[x,flag,relres,iter] = bicgstab(A,b,...)[x,flag,relres,iter,resvec] = bicgstab(A,b,...)

Description x = bicgstab(A,b) attempts to solve the system of linear equations A*x=b forx. The n-by-n coefficient matrix A must be square and the column vector b musthave length n. A can be a function afun such that afun(x) returns A*x.

If bicgstab converges, a message to that effect is displayed. If bicgstab failsto converge after the maximum number of iterations or halts for any reason, awarning message is printed displaying the relative residual norm(b-A*x)/norm(b) and the iteration number at which the method stopped or failed.

bicgstab(A,b,tol) specifies the tolerance of the method. If tol is [], thenbicgstab uses the default, 1e-6.

bicgstab(A,b,tol,maxit) specifies the maximum number of iterations. Ifmaxit is [], then bicgstab uses the default, min(n,20).

bicgstab(A,b,tol,maxit,M) and bicgstab(A,b,tol,maxit,M1,M2) usepreconditioner M or M = M1*M2 and effectively solve the systeminv(M)*A*x = inv(M)*b for x. If M is [] then bicgstab applies nopreconditioner. M can be a function that returns M\x.

bicgstab(A,b,tol,maxit,M1,M2,x0) specifies the initial guess. If x0 is [],then bicgstab uses the default, an all zero vector.

119

Page 170: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicgstab

bicgstab(afun,b,tol,maxit,m1fun,m2fun,x0,p1,p2,...) passesparameters p1,p2,... to functions afun(x,p1,p2,...), m1fun(x,p1,p2,...),and m2fun(x,p1,p2,...).

[x,flag] = bicgstab(A,b,...) also returns a convergence flag.

Whenever flag is not 0, the solution x returned is that with minimal normresidual computed over all the iterations. No messages are displayed if the flagoutput is specified.

[x,flag,relres] = bicgstab(A,b,...) also returns the relative residualnorm(b-A*x)/norm(b). If flag is 0, relres <= tol.

[x,flag,relres,iter] = bicgstab(A,b,...) also returns the iterationnumber at which x was computed, where 0 <= iter <= maxit. iter can be aninteger + 0.5, indicating convergence half way through an iteration.

[x,flag,relres,iter,resvec] = bicgstab(A,b,...) also returns a vector ofthe residual norms at each half iteration, including norm(b-A*x0).

Example Example 1.

A = gallery('wilk',21);b = sum(A,2);tol = 1e-12;maxit = 15;

Flag Convergence

0 bicgstab converged to the desired tolerance tol withinmaxit iterations.

1 bicgstab iterated maxit times but did not converge.

2 Preconditioner M was ill-conditioned.

3 bicgstab stagnated. (Two consecutive iterates were thesame.)

4 One of the scalar quantities calculated during bicgstabbecame too small or too large to continue computing.

120

Page 171: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicgstab

M1 = diag([10:-1:1 1 1:10]);

x = bicgstab(A,b,tol,maxit,M1,[],[]);bicgstab converged at iteration 12.5 to a solution with relativeresidual 1.2e-014

Alternatively, use this matrix-vector product function

function y = afun(x,n)y = [0; x(1:n-1)] + [((n-1)/2:-1:0)'; (1:(n-1)/2)'] .*x + [x(2:n); 0];

and this preconditioner backsolve function

function y = mfun(r,n)y = r ./ [((n-1)/2:-1:1)'; 1; (1:(n-1)/2)'];

as inputs to bicgstab

x1 = bicgstab(@afun,b,tol,maxit,@mfun,[],[],21);

Note that both afun and mfun must accept bicgstab's extra input n=21.

Example 2.

load west0479;A = west0479;b = sum(A,2);[x,flag] = bicgstab(A,b)

flag is 1 because bicgstab does not converge to the default tolerance 1e-6within the default 20 iterations.

[L1,U1] = luinc(A,1e-5);[x1,flag1] = bicgstab(A,b,1e-6,20,L1,U1)

flag1 is 2 because the upper triangular U1 has a zero on its diagonal. Thiscauses bicgstab to fail in the first iteration when it tries to solve a system suchas U1*y = r using backslash.

[L2,U2] = luinc(A,1e-6);[x2,flag2,relres2,iter2,resvec2] = bicgstab(A,b,1e-15,10,L2,U2)

121

Page 172: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicgstab

flag2 is 0 because bicgstab converges to the tolerance of 3.1757e-016 (thevalue of relres2) at the sixth iteration (the value of iter2) whenpreconditioned by the incomplete LU factorization with a drop tolerance of1e-6. resvec2(1) = norm(b) and resvec2(13) = norm(b-A*x2). You canfollow the progress of bicgstab by plotting the relative residuals at the halfwaypoint and end of each iteration starting from the initial estimate (iteratenumber 0).

semilogy(0:0.5:iter2,resvec2/norm(b),'-o')xlabel('iteration number')ylabel('relative residual')

See Also bicg, cgs, gmres, lsqr, luinc, minres, pcg, qmr, symmlq

@ (function handle), \ (backslash)

0 1 2 3 4 5 610

−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

iteration number

rela

tive

resi

dual

122

Page 173: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bicgstab

References [1] Barrett, R., M. Berry, T. F. Chan, et al., Templates for the Solution of LinearSystems: Building Blocks for Iterative Methods, SIAM, Philadelphia, 1994.

[2] van der Vorst, H. A., “BI-CGSTAB: A fast and smoothly converging variantof BI-CG for the solution of nonsymmetric linear systems”, SIAM J. Sci. Stat.Comput., March 1992,Vol. 13, No. 2, pp. 631-644.

123

Page 174: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bin2dec

1bin2decPurpose Binary to decimal number conversion

Syntax bin2dec(binarystr)

Description bin2dec(binarystr) interprets the binary string binarystr and returns theequivalent decimal number.

Examples bin2dec('010111') returns 23.

See Also dec2bin

124

Page 175: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitand

1bitandPurpose Bit-wise AND

Syntax C = bitand(A,B)

Description C = bitand(A,B) returns the bit-wise AND of two nonnegative integerarguments A and B. To ensure the operands are integers, use the ceil, fix,floor, and round functions.

Examples The five-bit binary representations of the integers 13 and 27 are 01101 and11011, respectively. Performing a bit-wise AND on these numbers yields01001, or 9.

C = bitand(13,27)

C =

9

See Also bitcmp, bitget, bitmax, bitor, bitset, bitshift, bitxor

125

Page 176: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitcmp

1bitcmpPurpose Complement bits

Syntax C = bitcmp(A,n)

Description C = bitcmp(A,n) returns the bit-wise complement of A as an n-bitfloating-point integer (flint).

Example With eight-bit arithmetic, the ones’ complement of 01100011 (99, decimal) is10011100 (156, decimal).

C = bitcmp(99,8)

C =

156

See Also bitand, bitget, bitmax, bitor, bitset, bitshift, bitxor

126

Page 177: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitget

1bitgetPurpose Get bit

Syntax C = bitget(A,bit)

Description C = bitget(A,bit) returns the value of the bit at position bit in A. OperandA must be a nonnegative integer, and bit must be a number between 1 and thenumber of bits in the floating-point integer (flint) representation of A (52 forIEEE flints). To ensure the operand is an integer, use the ceil, fix, floor, andround functions.

Example The dec2bin function converts decimal numbers to binary. However, you canalso use the bitget function to show the binary representation of a decimalnumber. Just test successive bits from most to least significant:

disp(dec2bin(13))1101C = bitget(13,4:-1:1)

C = 1 1 0 1

See Also bitand, bitcmp, bitmax, bitor, bitset, bitshift, bitxor

127

Page 178: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitmax

1bitmaxPurpose Maximum floating-point integer

Syntax bitmax

Description bitmax returns the maximum unsigned floating-point integer for yourcomputer. It is the value when all bits are set, namely the value .

See Also bitand, bitcmp, bitget, bitor, bitset, bitshift, bitxor

253 1–

128

Page 179: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitor

1bitorPurpose Bit-wise OR

Syntax C = bitor(A,B)

Description C = bitor(A,B) returns the bit-wise OR of two nonnegative integerarguments A and B. To ensure the operands are integers, use the ceil, fix,floor, and round functions.

Examples The five-bit binary representations of the integers 13 and 27 are 01101 and11011, respectively. Performing a bit-wise OR on these numbers yields 11111,or 31.

C = bitor(13,27)

C =

31

See Also bitand, bitcmp, bitget, bitmax, bitset, bitshift, bitxor

129

Page 180: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitset

1bitsetPurpose Set bit

Syntax C = bitset(A,bit)C = bitset(A,bit,v)

Description C = bitset(A,bit) sets bit position bit in A to 1 (on). A must be a nonnegativeinteger and bit must be a number between 1 and the number of bits in thefloating-point integer (flint) representation of A (52 for IEEE flints). To ensurethe operand is an integer, use the ceil, fix, floor, and round functions.

C = bitset(A,bit,v) sets the bit at position bit to the value v, which must beeither 0 or 1.

Examples Setting the fifth bit in the five-bit binary representation of the integer 9 (01001)yields 11001, or 25.

C = bitset(9,5)

C =

25

See Also bitand, bitcmp, bitget, bitmax, bitor, bitshift, bitxor

130

Page 181: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitshift

1bitshiftPurpose Bit-wise shift

Syntax C = bitshift(A,k,n)C = bitshift(A,k)

Description C = bitshift(A,k,n) returns the value of A shifted by k bits. If k>0, this issame as a multiplication by 2k (left shift). If k<0, this is the same as a divisionby 2k (right shift). An equivalent computation for this function isC = fix(A*2^k).

If the shift causes C to overflow n bits, the overflowing bits are dropped. A mustcontain nonnegative integers between 0 and BITMAX, which you can ensure byusing the ceil, fix, floor, and round functions.

C = bitshift(A,k) uses the default value of n = 53.

Examples Shifting 1100 (12, decimal) to the left two bits yields 110000 (48, decimal).

C = bitshift(12,2)

C =

48

See Also bitand, bitcmp, bitget, bitmax, bitor, bitset, bitxor, fix

131

Page 182: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bitxor

1bitxorPurpose Bit-wise XOR

Syntax C = bitxor(A,B)

Description C = bitxor(A,B) returns the bit-wise XOR of the two arguments A and B. BothA and B must be integers. You can ensure this by using the ceil, fix, floor,and round functions.

Examples The five-bit binary representations of the integers 13 and 27 are 01101 and11011, respectively. Performing a bit-wise XOR on these numbers yields 10110,or 22.

C = bitxor(13,27)

C = 22

See Also bitand, bitcmp, bitget, bitmax, bitor, bitset, bitshift

132

Page 183: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

blanks

1blanksPurpose A string of blanks

Syntax blanks(n)

Description blanks(n) is a string of n blanks.

Examples blanks is useful with the display function. For example,

disp(['xxx' blanks(20) 'yyy'])

displays twenty blanks between the strings 'xxx' and 'yyy'.

disp(blanks(n)') moves the cursor down n lines.

See Also clc, format, home

133

Page 184: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

blkdiag

1blkdiagPurpose Construct a block diagonal matrix from input arguments

Syntax out = blkdiag(a,b,c,d,...)

Description out = blkdiag(a,b,c,d,...) where a, b, ... are matrices outputs a blockdiagonal matrix of the form:

The input matrics do not have to be square, nor do they have to be of equal size.

blkdiag works not only for matrices, but for any MATLAB objects whichsupport horzcat and vertcat operations.

See Also diag

a 0 0 0 00 b 0 0 00 0 c 0 00 0 0 d 00 0 0 0 …

134

Page 185: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

box

1boxPurpose Control axes border

Syntax box onbox offboxbox(axes_handle,...)

Description box on displays the boundary of the current axes.

box off does not display the boundary of the current axes.

box toggles the visible state of the current axes’ boundary.

box(axes_handle,...) uses the axes specified by axes_handle instead of thecurrent axes.

Algorithm The box function sets the axes Box property to on or off.

See Also axes, grid

135

Page 186: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

break

1breakPurpose Terminate execution of a for loop or while loop

Syntax break

Description break terminates the execution of a for loop or while loop. In nested loops,break exits from the innermost loop only.

Remarks If you use break outside of a for or while loop in a MATLAB script or function,break terminates the script or function at that point.

If break is executed in anif, switch-case, or try-catch statement, it termi-nates the statement at that point.

Examples The example below shows a while loop that reads the contents of the file fft.minto a MATLAB character array. A break statement is used to exit the whileloop when the first empty line is encountered. The resulting character arraycontains the M-file help for the fft program.

fid = fopen('fft.m','r');s = '';while ~feof(fid) line = fgetl(fid); if isempty(line), break, end s = strvcat(s,line);enddisp(s)

See Also end, for, return, while

136

Page 187: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

brighten

1brightenPurpose Brighten or darken colormap

Syntax brighten(beta)brighten(h,beta)newmap = brighten(beta)newmap = brighten(cmap,beta)

Description brighten increases or decreases the color intensities in a colormap. Themodified colormap is brighter if 0 < beta < 1 and darker if –1 < beta < 0.

brighten(beta) replaces the current colormap with a brighter or darkercolormap of essentially the same colors. brighten(beta), followed bybrighten(–beta), where beta < 1, restores the original map.

brighten(h,beta) brightens all objects that are children of the figure havingthe handle h.

newmap = brighten(beta) returns a brighter or darker version of the currentcolormap without changing the display.

newmap = brighten(cmap,beta) returns a brighter or darker version of thecolormap cmap without changing the display.

Examples Brighten and then darken the current colormap:

beta = .5; brighten(beta);beta = —.5; brighten(beta);

Algorithm The values in the colormap are raised to the power of gamma, where gamma is

brighten has no effect on graphics objects defined with true color.

See Also colormap, rgbplot

γ1 β, β 0>–

11 β+-------------, β 0≤

=

137

Page 188: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

builtin

1builtinPurpose Execute builtin function from overloaded method

Syntax builtin(function,x1,...,xn)[y1,..,yn] = builtin(function,x1,...,xn)

Description builtin is used in methods that overload builtin functions to execute theoriginal builtin function. If function is a string containing the name of abuiltin function,then:

builtin(function,x1,...,xn) evaluates that function at the givenarguments.

[y1,..,yn] = builtin(function,x1,...,xn) returns multiple outputarguments.

Remarks builtin(...) is the same as feval(...) except that it calls the original builtinversion of the function even if an overloaded one exists. (For this to work youmust never overload builtin.)

See Also feval

138

Page 189: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

1bvp4cPurpose Solve two-point boundary value problems (BVPs) for ordinary differentialequations

Syntax sol = bvp4c(odefun,bcfun,solinit)sol = bvp4c(odefun,bcfun,solinit,options)sol = bvp4c(odefun,bcfun,solinit,options,p1,p2...)

Arguments odefun A function that evaluates the differential equations . It canhave the form

dydx = odefun(x,y)dydx = odefun(x,y,p1,p2,...)dydx = odefun(x,y,parameters)dydx = odefun(x,y,parameters,p1,p2,...)

where x is a scalar corresponding to , and y is a column vectorcorresponding to . parameters is a vector of unknownparameters, and p1,p2,... are known parameters. The outputdydx is a column vector.

bcfun A function that computes the residual in the boundary conditions. It can have the form

res = bcfun(ya,yb)res = bcfun(ya,yb,p1,p2,...)res = bcfun(ya,yb,parameters)res = bcfun(ya,yb,parameters,p1,p2,...)

where ya and yb are column vectors corresponding to and. parameters is a vector of unknown parameters, and

p1,p2,... are known parameters. The output res is a columnvector.

solinit A structure with fields:

x Ordered nodes of the initial mesh. Boundaryconditions are imposed at a = solinit.x(1) andb = solinit.x(end).

y Initial guess for the solution such thatsolinit.y(:,i) is a guess for the solution at thenode solinit.x(i).

f x y,( )

xy

bc y a( ) y b( ),( )

y a( )y b( )

139

Page 190: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

Description sol = bvp4c(odefun,bcfun,solinit) integrates a system of ordinarydifferential equations of the form

on the interval [a,b] subject to general two-point boundary conditions

The bvp4c solver can also find unknown parameters for problems of the form

where corresponds to parameters. You provide bvp4c an initial guess for anyunknown parameters in solinit.parameters. The bvp4c solver returns thefinal values of these unknown parameters in sol.parameters.

bvp4c produces a solution that is continuous on [a,b] and has a continuous firstderivative there. Use the function bvpval and the output sol of bvp4c toevaluate the solution at specific points xint in the interval [a,b].

yint = bvpval(sol,xint)

The structure sol returned by bvp4c has the following fields:

parameters Optional. A vector that provides an initial guess forunknown parameters.

The structure can have any name, but the fields must be named x,y, and parameters. You can form solinit with the helper functionbvpinit. See bvpinit for details.

options Optional integration argument. A structure you create using thebvpset function. See bvpset for details.

p1,p2... Optional. Known parameters that the solver passes to odefun,bcfun, and all the functions the user specifies in options.

x Mesh selected by bvp4c

y Approximation to at the mesh points of sol.x

y′ f x y,( )=

bc y a( ) y b( ),( ) 0=

p

y′ f x y p, ,( )=

bc y a( ) y b( ) p, ,( ) 0=

p

y x( )

140

Page 191: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

The structure sol can have any name, and bvp4c creates the fields x, y, yp, andparameters.

sol = bvp4c(odefun,bcfun,solinit,options) solves as above with defaultintegration properties replaced by the values in options, a structure createdwith the bvpset function. See bvpset for details.

sol = bvp4c(odefun,bcfun,solinit,options,p1,p2...) passes constantknown parameters, p1, p2, ..., to odefun, bcfun, and all the functions the userspecifies in options. Use options = [] as a placeholder if no options are set.

Examples Example 1. Boundary value problems can have multiple solutions and onepurpose of the initial guess is to indicate which solution you want. The secondorder differential equation

has exactly two solutions that satisfy the boundary conditions

Prior to solving this problem with bvp4c, the differential equation must bewritten as a system of two first order ODEs

Here and . This system has the required form

The function and the boundary conditions are coded in MATLAB asfunctions twoode and twobc.

function dydx = twoode(x,y) dydx = [ y(2)

yp Approximation to at the mesh points of sol.x

parameters Values returned by bvp4c for the unknown parameters, if any

y′ x( )

y′′ y+ 0=

y 0( ) 0=

y 4( ) 2–=

y1′ y2=

y2′ y1–=

y1 y= y2 y′=

y′ f x y,( )=

bc y a( ) y b( ),( ) 0=

f bc

141

Page 192: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

-abs(y(1))];

function res = twobc(ya,yb) res = [ ya(1) yb(1) + 2];

A guess structure consisting of an initial mesh of five equally spaced points in[0,4] and a guess of constant values and is formed by

solinit = bvpinit(linspace(0,4,5),[1 0]);

The problem is solved with the command

sol = bvp4c(@twoode,@twobc,solinit);

The numerical solution is evaluated at 100 equally spaced points and isplotted with

y = bvpval(sol,linspace(0,4));plot(x,y(1,:));

The other solution of this problem can be obtained with the initial guess

solinit = bvpinit(linspace(0,4,5),[-1 0]);

y1 x( ) 1≡ y2 x( ) 0≡

y x( )

0 0.5 1 1.5 2 2.5 3 3.5 4−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

x

y

142

Page 193: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

Example 2. This boundary value problem involves an unknown parameter.The task is to compute the fourth ( ) eigenvalue of Mathieu's equation

Because the unknown parameter is present, this second order differentialequation is subject to three boundary conditions

It is convenient to use subfunctions to place all the functions required by bvp4cin a single M-file.

function mat4bvp

lambda = 15;solinit = bvpinit(linspace(0,pi,10),@mat4init,lambda);sol = bvp4c(@mat4ode,@mat4bc,solinit);

0 0.5 1 1.5 2 2.5 3 3.5 4−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

x

y

q 5= λ

y′′ λ 2– q 2xcos( ) y+ 0=

λ

y′ 0( ) 0=

y′ π( ) 0=

y 0( ) 1=

143

Page 194: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

fprintf('The fourth eigenvalue is approximately %7.3f.\n',... sol.parameters)

xint = linspace(0,pi);Sxint = bvpval(sol,xint);plot(xint,Sxint(1,:))axis([0 pi -1 1.1])title('Eigenfunction of Mathieu''s equation.')xlabel('x')ylabel('solution y')% ------------------------------------------------------------function dydx = mat4ode(x,y,lambda)q = 5;dydx = [ y(2) -(lambda - 2*q*cos(2*x))*y(1) ];% ------------------------------------------------------------function res = mat4bc(ya,yb,lambda)res = [ ya(2) yb(2) ya(1)-1 ];% ------------------------------------------------------------function yinit = mat4init(x)yinit = [ cos(4*x) -4*sin(4*x) ];

The differential equation (converted to a first order system) and the boundaryconditions are coded as subfunctions mat4ode and mat4bc, respectively.Because unknown parameters are present, these functions must accept threeinput arguments, even though some of the arguments are not used.

The guess structure solinit is formed with bvpinit. An initial guess for thesolution is supplied in the form of a function mat4init. We chosebecause it satisfies the boundary conditions and has the correct qualitativebehavior (the correct number of sign changes). In the call to bvpinit, the thirdargument (lambda = 15) provides an initial guess for the unknown parameter

.

After the problem is solved with bvp4c, the field sol.parameters returns thevalue , and the plot shows the eigenfunction associated with thiseigenvalue.

y 4xcos=

λ

λ 17.097=

144

Page 195: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvp4c

Algorithms bvp4c is a finite difference code that implements the three-stage Lobatto IIIaformula. This is a collocation formula and the collocation polynomial providesa C1-continuous solution that is fourth order accurate uniformly in [a,b]. Meshselection and error control are based on the residual of the continuous solution.

See Also @ (function_handle), bvpget, bvpinit, bvpset, bvpval

References [1] Shampine, L.F., M.W. Reichelt, and J. Kierzenka, “Solving Boundary ValueProblems for Ordinary Differential Equations in MATLAB with bvp4c,”available at ftp://ftp.mathworks.com/pub/doc/papers/bvp/.

0 0.5 1 1.5 2 2.5 3−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Eigenfunction of Mathieu’s equation.

x

solu

tion

y

145

Page 196: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvpget

1bvpgetPurpose Extract properties from the options structure created with bvpset

Syntax val = bvpget(options,'name')val = bvpget(options,'name',default)

Description val = bvpget(options,'name') extracts the value of the named propertyfrom the structure options, returning an empty matrix if the property value isnot specified in options. It is sufficient to type only the leading characters thatuniquely identify the property. Case is ignored for property names. [] is a validoptions argument.

val = bvpget(options,'name',default) extracts the named property asabove, but returns val = default if the named property is not specified inoptions. For example,

val = bvpget(opts,'RelTol',1e-4);

returns val = 1e-4 if the RelTol is not specified in opts.

See Also bvp4c, bvpinit, bvpset, bvpval

146

Page 197: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvpinit

1bvpinitPurpose Form the initial guess for bvp4c

Syntax solinit = bvpinit(x,v)solinit = bvpinit(x,v,parameters)

Description solinit = bvpinit(x,v) forms the initial guess for bvp4c in commoncircumstances.

x is a vector that specifies an initial mesh. If you want to solve the boundaryvalue problem (BVP) on [a,b], then specify x(1) as a and x(end) as b. Thefunction bvp4c adapts this mesh to the solution, so often a guess likex = linspace(a,b,10) suffices. However, in difficult cases, you must placemesh points where the solution changes rapidly. The entries of x must beordered and distinct, so if a < b, then x(1) < x(2) < ... < x(end), andsimilarly for a > b.

v is a guess for the solution. It can be either a vector, or a function:

• Vector – For each component of the solution, bvpinit replicates thecorresponding element of the vector as a constant guess across all meshpoints. That is, v(i) is a constant guess for the ith component y(i,:) of thesolution at all the mesh points in x.

• Function – For a given mesh point, the function must return a vector whoseelements are guesses for the corresponding components of the solution. Thefunction must be of the form

y = guess(x)

where x is a mesh point and y is a vector whose length is the same as thenumber of components in the solution. For example, if you use @guess,bvpinit calls this function for each mesh point y(:,j) = guess(x(j)).

solinit = bvpinit(x,v,parameters) indicates that the BVP involvesunknown parameters. Use the vector parameters to provide a guess for allunknown parameters.

147

Page 198: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvpinit

solinit is a structure with the following fields. The structure can have anyname, but the fields must be named x, y, and parameters.

See Also @ (function_handle), bvp4c, bvpget, bvpset, bvpval

x Ordered nodes of the initial mesh.

y Initial guess for the solution with solinit.y(:,i) a guess forthe solution at the node solinit.x(i).

parameters Optional. A vector that provides an initial guess for unknownparameters.

148

Page 199: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvpset

1bvpsetPurpose Create/alter boundary value problem (BVP) options structure

Syntax options = bvpset('name1',value1,'name2',value2,...)options = bvpset(oldopts'name1',value1,...)options = bvpset(oldopts,newopts)bvpset

Description options = bvpset('name1',value1,'name2',value2,...) creates astructure options in which the named properties have the specified values.Any unspecified properties have default values. It is sufficient to type only theleading characters that uniquely identify the property. Case is ignored forproperty names.

options = bvpset(oldopts,'name1',value1,...) alters an existing optionsstructure oldopts.

options = bvpset(oldopts,newopts) combines an existing options structureoldopts with a new options structure newopts. Any new properties overwritecorresponding old properties.

bvpset with no input arguments displays all property names and their possiblevalues.

BVP Properties RelTol – Relative tolerance for the residual [ positive scalar {1e-3} ]

This scalar applies to all components of the residual vector, and defaults to1e-3 (0.1% accuracy). The computed solution is the exact solution of

. On each subinterval of the mesh, the residual satisfies

AbsTol – Absolute tolerance for the residual [ positive scalar or vector {1e-6} ]

A scalar tolerance applies to all components of the residual vector. Elements ofa vector of tolerances apply to corresponding components of the residual vector.AbsTol defaults to 1e-6.

FJacobian – Analytic partial derivatives of ODEFUN [ function ]

S x( )S′ x( ) F x S x( ),( ) res x( )+=res x( )

res i( ) max abs F i( )( ) AbsTol i( ) RelTol⁄,( )⁄( ) RelTol≤

149

Page 200: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvpset

For example, when solving , set this property to @FJAC ifDFDY = FJAC(X,Y) evaluates the Jacobian of with respect to . If theproblem involves unknown parameters , [DFDY,DFDP] = FJAC(X,Y,P) mustalso return the partial derivative of with respect to .

BCJacobian – Analytic partial derivatives of BCFUN [ function ]

For example, for boundary conditions , set this property to@BCJAC if [DBCDYA,DBCDYB] = BCJAC(YA,YB) evaluates the partial derivativesof with respect to and to . If the problem involves unknownparameters , [DBCDYA,DBCDYB,DBCDP] = BCJAC(YA,YB,P) must also returnthe partial derivative of with respect to .

Nmax – Maximum number of mesh points allowed[ positive integer {floor(1000/n)}]

Stats – Display computational cost statistics [ on | {off} ]

See Also @ (function_handle), bvp4c, bvpget, bvpinit, bvpval

y′ f x y,( )=f y

pf p

bc ya yb,( ) 0=

bc ya ybp

bc p

150

Page 201: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

bvpval

1bvpvalPurpose Evaluate the numerical solution of a boundary value problem (BVP) using theoutput of bvp4c

Syntax sxint = bvpval(sol,xint)

Description sxint = bvpval(sol,xint) uses sol, the output of bvp4c, to evaluate thesolution of a boundary value problem at each element of the vector xint. Foreach i, sxint(:,i) is the solution corresponding to xint(i).

See Also bvp4c, bvpinit, bvpget, bvpset

151

Page 202: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

calendar

1calendarPurpose Calendar

Syntax c = calendarc = calendar(d)c = calendar(y,m)

calendar(...)

Description c = calendar returns a 6-by-7 matrix containing a calendar for the currentmonth. The calendar runs Sunday (first column) to Saturday.

c = calendar(d), where d is a serial date number or a date string, returns acalendar for the specified month.

c = calendar(y,m), where y and m are integers, returns a calendar for thespecified month of the specified year.

calendar(...) displays the calendar on the screen.

Examples The command:

calendar(1957,10)

reveals that the Space Age began on a Friday (on October 4, 1957, whenSputnik 1 was launched).

Oct 1957 S M Tu W Th F S 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 0 0 0 0 0 0 0

See Also datenum

152

Page 203: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camdolly

1camdollyPurpose Move the camera position and target

Syntax camdolly(dx,dy,dz)camdolly(dx,dy,dz,'targetmode')camdolly(dx,dy,dz,'targetmode','coordsys')camdolly(axes_handle,...)

Description camdolly moves the camera position and the camera target by the specifiedamounts.

camdolly(dx,dy,dz) moves the camera position and the camera target by thespecified amounts (see “Coordinate Systems”).

camdolly(dx,dy,dz,'targetmode') The targetmode argument can take ontwo values that determine how MATLAB moves the camera:

• movetarget (default) – move both the camera and the target

• fixtarget – move only the camera

camdolly(dx,dy,dz,'targetmode','coordsys') The coordsys argument cantake on three values that determine how MATLAB interprets dx, dy, and dz:

Coordinate Systems

• camera (default) – move in the camera’s coordinate system. dx movesleft/right, dy moves down/up, and dz moves along the viewing axis. The unitsare normalized to the scene.

For example, setting dx to 1 moves the camera to the right, which pushes thescene to the left edge of the box formed by the axes position rectangle. Anegative value moves the scene in the other direction. Setting dz to 0.5moves the camera to a position halfway between the camera position and thecamera target

• pixels – interpret dx and dy as pixel offsets. dz is ignored.

• data – interpret dx, dy, and dz as offesets in axes data coordinates.

camdolly(axes_handle,...) operates on the axes identified by the firstargument, axes_handle. When you do not specify an axes handle, camdollyoperates on the current axes.

153

Page 204: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camdolly

Remarks camdolly sets the axes CameraPosition and CameraTarget properties, which inturn causes the CameraPositionMode and CameraTargetMode properties to beset to manual.

Examples This example moves the camera along the x- and y-axes in a series of steps.

surf(peaks)axis vis3dt = 0:pi/20:2*pi;dx = sin(t)./40;dy = cos(t)./40;for i = 1:length(t);

camdolly(dx(i),dy(i),0)drawnow

end

See Also axes, campos, camproj, camtarget, camup, camva

The axes properties CameraPosition, CameraTarget, CameraUpVector,CameraViewAngle, Projection

See Defining Scenes with Camera Graphics for more information on cameraproperties.

154

Page 205: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camlight

1camlightPurpose Create or move a light object in camera coordinates

Syntax camlight headlightcamlight rightcamlight leftcamlightcamlight(az,el)camlight(...‘style’)camlight(light_handle,...)light_handle = camlight(...)

Description camlight('headlight') creates a light at the camera position.

camlight('right') creates a light right and up from camera.

camlight('left') creates a light left and up from camera.

camlight with no arguments is the same as camlight('right').

camlight(az,el) creates a light at the specified azimuth (az) and elevation(el) with respect to the camera position. The camera target is the center ofrotation and az and el are in degrees.

camlight(...,'style') The style argument can take on the two values:

• local (default) – the light is a point source that radiates from the location inall directions.

• infinite – the light shines in parallel rays.

camlight(light_handle,...) uses the light specified in light_handle.

light_handle = camlight(...) returns the light’s handle.

Remarks camlight sets the light object Position and Style properties. A light createdwith camlight will not track the camera. In order for the light to stay in aconstant position relative to the camera, you must call camlight whenever youmove the camera.

155

Page 206: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camlight

Examples This example creates a light positioned to the left of the camera and thenrepositions the light each time the camera is moved:

surf(peaks)axis vis3dh = camlight('left');for i = 1:20;

camorbit(10,0)camlight(h,'left')drawnow;

end

156

Page 207: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camlookat

1camlookatPurpose Position the camera to view an object or group of objects

Syntax camlookat(object_handles)camlookat(axes_handle)camlookat

Description camlookat(object_handles) views the objects identified in the vectorobject_handles. The vector can contain the handles of axes children.

camlookat(axes_handle) views the objects that are children of the axesidentified by axes_handle.

camlookat views the objects that are in the current axes.

Remarks camlookat moves the camera position and camera target while preserving therelative view direction and camera view angle. The object (or objects) beingviewed roughly fill the axes position rectangle.

camlookat sets the axes CameraPosition and CameraTarget properties.

Examples This example creates three spheres at different locations and thenprogressively positions the camera so that each sphere is the object aroundwhich the scene is composed:

[x y z] = sphere;s1 = surf(x,y,z);hold ons2 = surf(x+3,y,z+3);s3 = surf(x,y,z+6);daspect([1 1 1])view(30,10)camproj perspectivecamlookat(gca) % Compose the scene around the current axespause(2)camlookat(s1) % Compose the scene around sphere s1pause(2)camlookat(s2) % Compose the scene around sphere s2pause(2)

157

Page 208: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camlookat

camlookat(s3) % Compose the scene around sphere s3pause(2)camlookat(gca)

See Also campos, camtarget

158

Page 209: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camorbit

1camorbitPurpose Rotate the camera position around the camera target

Syntax camorbit(dtheta,dphi)camorbit(dtheta,dphi,'coordsys')camorbit(dtheta,dphi,'coordsys','direction')camorbit(axes_handle,...)

Description camorbit(dtheta,dphi) rotates the camera position around the camera targetby the amounts specified in dtheta and dphi (both in degrees). dtheta is thehorizontal rotation and dphi is the vertical rotation.

camorbit(dtheta,dphi,'coordsys') The coordsys argument determines thecenter of rotation. It can take on two values:

• data (default) – rotate the camera around an axis defined by the cameratarget and the direction (default is the positive z direction).

• camera – rotate the camera about the point defined by the camera target.

camorbit(dtheta,dphi,'coordsys','direction') Thedirectionargument,in conjunction with the camera target, defines the axis of rotation for the datacoordinate system. Specify direction as a three-element vector containing thex, y, and z-components of the direction or one of the characters, x, y, or z, toindicate [1 0 0], [0 1 0], or [0 0 1] respectively.

camorbit(axes_handle,...) operates on the axes identified by the firstargument, axes_handle. When you do not specify an axes handle, camorbitoperates on the current axes.

Examples Compare rotation in the two coordinate systems with these for loops. The firstrotates the camera horizontally about a line defined by the camera target pointand a direction that is parallel to the y-axis. Visualize this rotation as a coneformed with the camera target at the apex and the camera position forming thebase:

surf(peaks)axis vis3dfor i=1:36

camorbit(10,0,'data',[0 1 0])drawnow

end

159

Page 210: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camorbit

Rotation in the camera coordinate system orbits the camera around the axesalong a circle while keeping the center of a circle at the camera target.

surf(peaks)axis vis3dfor i=1:36

camorbit(10,0,'camera')drawnow

end

See Also axes, axis('vis3d'), camdolly, campan, camzoom, camroll

160

Page 211: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

campan

1campanPurpose Rotate the camera target around the camera position

Syntax campan(dtheta,dphi)campan(dtheta,dphi,'coordsys')campan(dtheta,dphi,'coordsys','direction')campan(axes_handle,...)

Description campan(dtheta,dphi) rotates the camera target around the camera positionby the amounts specified in dtheta and dphi (both in degrees). dtheta is thehorizontal rotation and dphi is the vertical rotation.

campan(dtheta,dphi,'coordsys') The coordsys argument determines thecenter of rotation. It can take on two values:

• data (default) – rotate the camera target around an axis defined by thecamera position and the direction (default is the positive z direction)

• camera – rotate the camera about the point defined by the camera target.

campan(dtheta,dphi,'coordsys','direction') Thedirectionargument, inconjunction with the camera position, defines the axis of rotation for the datacoordinate system. Specify direction as a three-element vector containing thex, y, and z-components of the direction or one of the characters, x, y, or z, toindicate [1 0 0], [0 1 0], or [0 0 1] respectively.

campan(axes_handle,...) operates on the axes identified by the firstargument, axes_handle. When you do not specify an axes handle, campanoperates on the current axes.

See Also axes, camdolly, camorbit, camtarget, camzoom, camroll

161

Page 212: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

campos

1camposPurpose Set or query the camera position

Syntax camposcampos([camera_position])campos('mode')campos('auto'campos('manual')campos(axes_handle,...)

Description campos with no arguments returns the camera position in the current axes.

campos([camera_position]) sets the position of the camera in the currentaxes to the specified value. Specify the position as a three-element vectorcontaining the x-, y-, and z-coordinates of the desired location in the data unitsof the axes.

campos('mode') returns the value of the camera position mode, which can beeither auto (the default) or manual.

campos('auto') sets the camera position mode to auto.

campos('manual') sets the camera position mode to manual.

campos(axes_handle,...) performs the set or query on the axes identified bythe first argument, axes_handle. When you do not specify an axes handle,campos operates on the current axes.

Remarks campos sets or queries values of the axes CameraPosition andCameraPositionMode properties. The camera position is the point in theCartesian coordinate system of the axes from which you view the scene.

Examples This example moves the camera along the x-axis in a series of steps:

surf(peaks)axis vis3d offfor x = −200:5:200

campos([x,5,10])drawnow

end

162

Page 213: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

campos

See Also axis, camproj, camtarget, camup, camva

The axes properties CameraPosition, CameraTarget, CameraUpVector,CameraViewAngle, Projection

163

Page 214: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camproj

1camprojPurpose Set or query the projection type

Syntax camprojcamproj(projection_type)camproj(axes_handle,...)

Description The projection type determines whether MATLAB uses a perspective ororthographic projection for 3-D views.

camproj with no arguments returns the projection type setting in the currentaxes.

camproj('projection_type') sets the projection type in the current axes tothe specified value. Possible values for projection_type are: orthographicand perspective.

camproj(axes_handle,...) performs the set or query on the axes identified bythe first argument, axes_handle. When you do not specify an axes handle,camproj operates on the current axes.

Remarks camproj sets or queries values of the axes object Projection property.

See Also campos, camtarget, camup, camva

The axes properties CameraPosition, CameraTarget, CameraUpVector,CameraViewAngle, Projection

164

Page 215: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camroll

1camrollPurpose Rotate the camera about the view axis

Syntax camroll(dtheta)camroll(axes_handle,dtheta)

Description camroll(dtheta) rotates the camera around the camera viewing axis by theamounts specified in dtheta (in degrees). The viewing axis is defined by the linepassing through the camera position and the camera target.

camroll(axes_handle,dtheta) operates on the axes identified by the firstargument, axes_handle. When you do not specify an axes handle, camrolloperates on the current axes.

Remarks camroll set the axes CameraUpVector property and thereby also sets theCameraUpVectorMode property to manual.

See Also axes, axis('vis3d'), camdolly, camorbit, camzoom, campan

165

Page 216: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camtarget

1camtargetPurpose Set or query the location of the camera target

Syntax camtargetcamtarget([camera_target])camtarget('mode')camtarget('auto')camtarget('manual')camtarget(axes_handle,...)

Description The camera target is the location in the axes that the camera points to. Thecamera remains oriented toward this point regardless of its position.

camtarget with no arguments returns the location of the camera target in thecurrent axes.

camtarget([camera_target]) sets the camera target in the current axes tothe specified value. Specify the target as a three-element vector containing thex-, y-, and z-coordinates of the desired location in the data units of the axes.

camtarget('mode') returns the value of the camera target mode, which can beeither auto (the default) or manual.

camtarget('auto') sets the camera target mode to auto.

camtarget('manual') sets the camera target mode to manual.

camtarget(axes_handle,...) performs the set or query on the axes identifiedby the first argument, axes_handle. When you do not specify an axes handle,camtarget operates on the current axes.

Remarks camtarget sets or queries values of the axes object Cameratarget andCameraTargetMode properties.

When the camera target mode is auto, MATLAB positions the camera targetat the center of the axes plot box.

Examples This example moves the camera position and the camera target along thex-axis in a series of steps:

surf(peaks);

166

Page 217: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camtarget

axis vis3dxp = linspace(−150,40,50);xt = linspace(25,50,50);for i=1:50 campos([xp(i),25,5]); camtarget([xt(i),30,0]) drawnowend

See Also axis, camproj, campos, camup, camva

The axes properties CameraPosition, CameraTarget, CameraUpVector,CameraViewAngle, Projection

167

Page 218: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camup

1camupPurpose Set or query the camera up vector

Syntax camupcamup([up_vector])camup('mode')camup('auto')camup('manual')camup(axes_handle,...)

Description The camera up vector specifies the direction that is oriented up in the scene.

camup with no arguments returns the camera up vector setting in the currentaxes.

camup([up_vector]) sets the up vector in the current axes to the specifiedvalue. Specify the up vector as x-, y-, and z-components. See Remarks.

camup('mode') returns the current value of the camera up vector mode, whichcan be either auto (the default) or manual.

camup('auto') sets the camera up vector mode to auto. In auto mode,MATLAB uses a value for the up vector of [0 1 0] for 2-D views. This meansthe z-axis points up.

camup('manual') sets the camera up vector mode to manual. In manual mode,MATLAB does not change the value of the camera up vector.

camup(axes_handle,...) performs the set or query on the axes identified bythe first argument, axes_handle. When you do not specify an axes handle,camup operates on the current axes.

Remarks camup sets or queries values of the axes object CameraUpVector andCameraUpVectorMode properties.

Specify the camera up vector as the x-, y-, and z-coordinates of a point in theaxes coordinate system that forms the directed line segment PQ, where P is thepoint (0,0,0) and Q is the specified x-, y-, and z-coordinates. This line alwayspoints up. The length of the line PQ has no effect on the orientation of thescene. This means a value of [0 0 1] produces the same results as [0 0 25].

168

Page 219: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camup

See Also axis, camproj, campos, camtarget, camva

The axes properties CameraPosition, CameraTarget, CameraUpVector,CameraViewAngle, Projection

169

Page 220: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camva

1camvaPurpose Set or query the camera view angle

Syntax camvacamva(view_angle)camva('mode')camva('auto')camva('manual')camva(axes_handle,...)

Description The camera view angle determines the field of view of the camera. Largerangles produce a smaller view of the scene. You can implement zooming bychanging the camera view angle.

camva with no arguments returns the camera view angle setting in the currentaxes.

camva(view_angle) sets the view angle in the current axes to the specifiedvalue. Specify the view angle in degrees.

camva('mode') returns the current value of the camera view angle mode,which can be either auto (the default) or manual. See Remarks.

camva('auto') sets the camera view angle mode to auto.

camva('manual') sets the camera view angle mode to manual. See Remarks.

camva(axes_handle,...) performs the set or query on the axes identified bythe first argument, axes_handle. When you do not specify an axes handle,camva operates on the current axes.

Remarks camva sets or queries values of the axes object CameraViewAngle andCameraViewAngleMode properties.

When the camera view angle mode is auto, MATLAB adjusts the camera viewangle so that the scene fills the available space in the window. If you move thecamera to a different position, MATLAB changes the camera view angle tomaintain a view of the scene that fills the available area in the window.

170

Page 221: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camva

Setting a camera view angle or setting the camera view angle to manualdisables MATLAB’s stretch-to-fill feature (stretching of the axes to fit thewindow). This means setting the camera view angle to its current value,

camva(camva)

can cause a change in the way the graph looks. See the Remarks section of theaxes reference page for more information.

Examples This example creates two pushbuttons, one that zooms in and another thatzooms out.

uicontrol('Style','pushbutton',...'String','Zoom In',...'Position',[20 20 60 20],...'Callback','if camva <= 1;return;else;camva(camva-1);end');

uicontrol('Style','pushbutton',...'String','Zoom Out',...'Position',[100 20 60 20],...'Callback','if camva >= 179;return;else;camva(camva+1);end');

Now create a graph to zoom in and out on:

surf(peaks);

Note the range checking in the callback statements. This keeps the values forthe camera view angle in the range, greater than zero and less than 180.

See Also axis, camproj, campos, camup, camtarget

The axes properties CameraPosition, CameraTarget, CameraUpVector,CameraViewAngle, Projection

171

Page 222: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

camzoom

1camzoomPurpose Zoom in and out on a scene

Syntax camzoom(zoom_factor)camzoom(axes_handle,...)

Description camzoom(zoom_factor) zooms in or out on the scene depending on the valuespecified by zoom_factor. If zoom_factor is greater than 1, the scene appearslarger; if zoom_factor is greater than zero and less than 1, the scene appearssmaller.

camzoom(axes_handle,...) operates on the axes identified by the firstargument, axes_handle. When you do not specify an axes handle, camzoomoperates on the current axes.

Remarks camzoom sets the axes CameraViewAngle property, which in turn causes theCameraViewAngleMode property to be set to manual. Note that setting theCameraViewAngle property disables MATLAB’s stretch-to-fill feature(stretching of the axes to fit the window). This may result in a change to theaspect ratio of your graph. See the axes function for more information on thisbehavior.

See Also axes, camdolly, camorbit, campan, camroll, camva

172

Page 223: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

capture

1capturePurpose capture is obsolete in Release 11 (5.3). getframe provides the samefunctionality and supports TrueColor displays by returning TrueColor images.

Syntax capturecapture(h)[X,cmap] = capture(h)

Description capture creates a bitmap copy of the contents of the current figure, includingany uicontrol graphics objects. It creates a new figure and displays the bitmapcopy as an image graphics object in the new figure.

capture(h) creates a new figure that contains a copy of the figure identified byh.

[X,cmap] = capture(h) returns an image matrix X and a colormap. Youdisplay this information using the statements

colormap(cmap)image(X)

Remarks The resolution of a bitmap copy is less than that obtained with the printcommand.

See Also image, print

173

Page 224: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cart2pol

1cart2polPurpose Transform Cartesian coordinates to polar or cylindrical

Syntax [THETA,RHO,Z] = cart2pol(X,Y,Z)[THETA,RHO] = cart2pol(X,Y)

Description [THETA,RHO,Z] = cart2pol(X,Y,Z) transforms three-dimensional Cartesiancoordinates stored in corresponding elements of arrays X, Y, and Z, intocylindrical coordinates. THETA is a counterclockwise angular displacement inradians from the positive x-axis, RHO is the distance from the origin to a pointin the x-y plane, and Z is the height above the x-y plane. Arrays X, Y, and Z mustbe the same size (or any can be scalar).

[THETA,RHO] = cart2pol(X,Y) transforms two-dimensional Cartesiancoordinates stored in corresponding elements of arrays X and Y into polarcoordinates.

Algorithm The mapping from two-dimensional Cartesian coordinates to polarcoordinates, and from three-dimensional Cartesian coordinates to cylindricalcoordinates is:

theta = atan2(y,x)rho = sqrt(x.^2 + y.^2)

Three-Dimensional Mapping

Z

Y

X

rhotheta

P

z

Two-Dimensional Mapping

P

X

Y

rho

theta

theta = atan2(y,x)rho = sqrt(x.^2 + y.^2)

z = z

174

Page 225: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cart2pol

See Also cart2sph, pol2cart, sph2cart

175

Page 226: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cart2sph

1cart2sphPurpose Transform Cartesian coordinates to spherical

Syntax [THETA,PHI,R] = cart2sph(X,Y,Z)

Description [THETA,PHI,R] = cart2sph(X,Y,Z) transforms Cartesian coordinates storedin corresponding elements of arrays X, Y, and Z into spherical coordinates.Azimuth THETA and elevation PHI are angular displacements in radiansmeasured from the positive x-axis, and the x-y plane, respectively; and R is thedistance from the origin to a point.

Arrays X, Y, and Z must be the same size.

Algorithm The mapping from three-dimensional Cartesian coordinates to sphericalcoordinates is:

See Also cart2pol, pol2cart, sph2cart

Z

Y

X

theta

P

theta = atan2(y,x)phi = atan2(z, sqrt(x.^2 + y.^2))

r = sqrt(x.^2+y.^2+z.^2)

phi

r

176

Page 227: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

case

1casePurpose Case switch

Description case is part of the switch statement syntax, which allows for conditionalexecution.

A particular case consists of the case statement itself, followed by a caseexpression, and one or more statements.

A case is executed only if its associated case expression (case_expr) is the firstto match the switch expression (switch_expr).

Examples The general form of the switch statement is:

switch switch_exprcase case_expr

statement,...,statementcase {case_expr1,case_expr2,case_expr3,...}

statement,...,statement...

otherwisestatement,...,statement

end

See Also switch

177

Page 228: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cat

1catPurpose Concatenate arrays

Syntax C = cat(dim,A,B)C = cat(dim,A1,A2,A3,A4...)

Description C = cat(dim,A,B) concatenates the arrays A and B along dim.

C = cat(dim,A1,A2,A3,A4,...) concatenates all the input arrays (A1, A2, A3,A4, and so on) along dim.

cat(2,A,B) is the same as [A,B] and cat(1,A,B) is the same as [A;B].

Remarks When used with comma separated list syntax, cat(dim,C{:}) orcat(dim,C.field) is a convenient way to concatenate a cell or structure arraycontaining numeric matrices into a single matrix.

Examples Given,

A = B = 1 2 5 6 3 4 7 8

concatenating along different dimensions produces:

The commands

A = magic(3); B = pascal(3);C = cat(4,A,B);

produce a 3-by-3-by-1-by-2 array.

See Also num2cell

The special character []

5 67 8

C = cat(1,A,B) C = cat(2,A,B) C = cat(3,A,B)

1 23 4 5 6

7 81 23 4

5 67 8

1 23 4

178

Page 229: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

catch

1catchPurpose Begin catch block

Description The general form of a try statement is:

try,statement,...,statement,

catch,statement,...,statement,

end

Normally, only the statements between the try and catch are executed.However, if an error occurs while executing any of the statements, the error iscaptured into lasterr, and the statements between the catch and end areexecuted. If an error occurs within the catch statements, execution stopsunless caught by another try...catch block. The error string produced by afailed try block can be obtained with lasterr.

See Also end, eval, evalin, try

179

Page 230: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

caxis

1caxisPurpose Color axis scaling

Syntax caxis([cmin cmax])caxis autocaxis manualcaxis(caxis)v = caxiscaxis(axes_handle,...)

Description caxis controls the mapping of data values to the colormap. It affects anysurfaces, patches, and images with indexed CData and CDataMapping set toscaled. It does not affect surfaces, patches, or images with true color CData orwith CDataMapping set to direct.

caxis([cmin cmax]) sets the color limits to specified minimum and maximumvalues. Data values less than cmin or greater than cmax map to cmin and cmax,respectively. Values between cmin and cmax linearly map to the currentcolormap.

caxis auto lets MATLAB compute the color limits automatically using theminimum and maximum data values. This is MATLAB’s default behavior.Color values set to Inf map to the maximum color, and values set to −Inf mapto the minimum color. Faces or edges with color values set to NaN are notdrawn.

caxis manual and caxis(caxis) freeze the color axis scaling at the currentlimits. This enables subsequent plots to use the same limits when hold is on.

v = caxis returns a two-element row vector containing the [cmin cmax]currently in use.

caxis(axes_handle,...) uses the axes specified by axes_handle instead ofthe current axes.

Remarks caxis changes the CLim and CLimMode properties of axes graphics objects.

How Color Axis Scaling WorksSurface, patch, and image graphics objects having indexed CData andCDataMapping set to scaled, map CData values to colors in the figure colormap

180

Page 231: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

caxis

each time they render. CData values equal to or less than cmin map to the firstcolor value in the colormap, and CData values equal to or greater than cmaxmapto the last color value in the colormap. MATLAB performs the following lineartransformation on the intermediate values (referred to as C below) to map themto an entry in the colormap (whose length is m, and whose row index is referredto as index below).

index = fix((C–cmin)/(cmax–cmin)∗m)+1

Examples Create (X,Y,Z) data for a sphere and view the data as a surface.

[X,Y,Z] = sphere;C = Z;surf(X,Y,Z,C)

Values of C have the range [−1 1]. Values of C near −1 are assigned the lowestvalues in the colormap; values of C near 1 are assigned the highest values in thecolormap.

To map the top half of the surface to the highest value in the color table, use

caxis([−1 0])

To use only the bottom half of the color table, enter

caxis([−1 3])

which maps the lowest CData values to the bottom of the colormap, and thehighest values to the middle of the colormap (by specifying a cmax whose valueis equal to cmin plus twice the range of the CData).

The command

caxis auto

resets axis scaling back to auto-ranging and you see all the colors in the surface.In this case, entering

caxis

returns

[–1 1]

181

Page 232: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

caxis

Adjusting the color axis can be useful when using images with scaled colordata. For example, load the image data and colormap for Cape Cod,Massachusetts.

load cape

This command loads the images data X and the image’s colormap map into theworkspace. Now display the image with CDataMapping set to scaled and installthe image’s colormap.

image(X,'CDataMapping','scaled')colormap(map)

MATLAB sets the color limits to span the range of the image data, which is 1to 192:

caxisans =

1 192

182

Page 233: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

caxis

The blue color of the ocean is the first color in the colormap and is mapped tothe lowest data value (1). You can effectively move sealevel by changing thelower color limit value. For example,

See Also axes, axis, colormap, get, mesh, pcolor, set, surf

The CLim and CLimMode properties of axes graphics objects.

The Colormap property of figure graphics objects.

Axes Color Limits

Caxis = [1 192]

100 200 300

50

100

150

200

250

300

Caxis = [3 192]

100 200 300

50

100

150

200

250

300

Caxis = [5 192]

100 200 300

50

100

150

200

250

300

Caxis = [6 192]

100 200 300

50

100

150

200

250

300

183

Page 234: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cd

1cdPurpose Change working directory

GraphicalInterface

As an alternative to the cd function, use the Current Directory field in theMATLAB desktop toolbar.

Syntax cdw = cdcd('directory')cd('..')cd directory or cd ..

Description cd prints out the current working directory.

w = cd assigns the current working directory to w.

cd('directory') sets the current working directory to directory. Use the fullpathname for directory. On UNIX platforms, the character ~ is interpreted asthe user’s root directory.

cd('..') changes the current working directory to the directory above it.

cd directory or cd .. is the unquoted form of the syntax.

Examples On UNIX

cd('/usr/local/matlab/toolbox/demos')

changes the current working directory to demos.

On Windows

cd('C:\TOOLBOX\MATLAB\DEMOS')

changes the current working directory to DEMOS. Then typing

cd ..

changes the current working directory to MATLAB.

See Also dir, path, pwd, what

184

Page 235: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cdf2rdf

1cdf2rdfPurpose Convert complex diagonal form to real block diagonal form

Syntax [V,D] = cdf2rdf(V,D)

Description If the eigensystem [V,D] = eig(X) has complex eigenvalues appearing incomplex-conjugate pairs, cdf2rdf transforms the system so D is in real diagonalform, with 2-by-2 real blocks along the diagonal replacing the complex pairsoriginally there. The eigenvectors are transformed so that

X = V∗D/V

continues to hold. The individual columns of V are no longer eigenvectors, buteach pair of vectors associated with a 2-by-2 block in D spans the correspondinginvariant vectors.

Examples The matrix

X =1 2 30 4 50 -5 4

has a pair of complex eigenvalues.

[V,D] = eig(X)

V =

1.0000 -0.0191 - 0.4002i -0.0191 + 0.4002i 0 0 - 0.6479i 0 + 0.6479i 0 0.6479 0.6479

D =

1.0000 0 00 4.0000 + 5.0000i 00 0 4.0000 - 5.0000i

Converting this to real block diagonal form produces

[V,D] = cdf2rdf(V,D)

185

Page 236: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cdf2rdf

V =

1.0000 -0.0191 -0.4002 0 0 -0.6479 0 0.6479 0

D =

1.0000 0 0 0 4.0000 5.0000 0 -5.0000 4.0000

Algorithm The real diagonal form for the eigenvalues is obtained from the complex formusing a specially constructed similarity transformation.

See Also eig, rsf2csf

186

Page 237: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ceil

1ceilPurpose Round toward infinity

Syntax B = ceil(A)

Description B = ceil(A) rounds the elements of A to the nearest integers greater than orequal to A. For complex A, the imaginary and real parts are roundedindependently.

Examples a = [-1.9, -0.2, 3.4, 5.6, 7, 2.4+3.6i]

a = Columns 1 through 4-1.9000 -0.2000 3.4000 5.6000

Columns 5 through 6 7.0000 2.4000 + 3.6000i

ceil(a)

ans = Columns 1 through 4 -1.0000 0 4.0000 6.0000

Columns 5 through 6 7.0000 3.0000 + 4.0000i

See Also fix, floor, round

187

Page 238: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cell

1cellPurpose Create cell array

Syntax c = cell(n)c = cell(m,n) or c = cell([m n])c = cell(m,n,p,...) or c = cell([m n p ...])c = cell(size(A))c = cell(javaobj)

Description c = cell(n) creates an n-by-n cell array of empty matrices. An error messageappears if n is not a scalar.

c = cell(m,n) or c = cell([m,n]) creates an m-by-n cell array of emptymatrices. Arguments m and n must be scalars.

c = cell(m,n,p,...) or c = cell([m n p ...]) creates an m-by-n-by-p-...cell array of empty matrices. Arguments m, n, p,... must be scalars.

c = cell(size(A)) creates a cell array the same size as A containing all emptymatrices.

c = cell(javaobj) converts a Java array or Java object, javaobj, into aMATLAB cell array. Elements of the resulting cell array will be of theMATLAB type (if any) closest to the Java array elements or Java object.

Examples This example creates a cell array that is the same size as another array, A.

A = ones(2,2)

A = 1 1 1 1

c = cell(size(A))

c = [] [] [] []

The next example converts an array of java.lang.String objects into aMATLAB cell array.

188

Page 239: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cell

strArray = java_array('java.lang.String',3);strArray(1) = java.lang.String('one');strArray(2) = java.lang.String('two');strArray(3) = java.lang.String('three');

cellArray = cell(strArray)cellArray = 'one' 'two' 'three'

See Also num2cell, ones, rand, randn, zeros

189

Page 240: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cell2struct

1cell2structPurpose Convert cell array to structure array

Syntax s = cell2struct(c,fields,dim)

Description s = cell2struct(c,fields,dim) converts the cell array c into the structure sby folding the dimension dim of c into fields of s. The length of c along thespecified dimension (size(c,dim)) must match the number of fields names infields. Argument fields can be a character array or a cell array of strings.

Examples c = {'tree',37.4,'birch'};f = {'category','height','name'};s = cell2struct(c,f,2)

s =

category: 'tree' height: 37.4000 name: 'birch'

See Also fieldnames, struct2cell

190

Page 241: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

celldisp

1celldispPurpose Display cell array contents.

Syntax celldisp(C)celldisp(C,name)

Description celldisp(C) recursively displays the contents of a cell array.

celldisp(C,name) uses the string name for the display instead of the name ofthe first input (or ans).

Example Use celldisp to display the contents of a 2-by-3 cell array:

C = {[1 2] 'Tony' 3+4i; [1 2;3 4] -5 'abc'};celldisp(C)

C{1,1} = 1 2

C{2,1} = 1 2 3 4

C{1,2} =Tony

C{2,2} = -5

C{1,3} = 3.0000+ 4.0000i

C{2,3} =abc

See Also cellplot

191

Page 242: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cellfun

1cellfunPurpose Apply a function to each element in a cell array

Syntax D = cellfun('fname',C)D = cellfun('size',C,k)D = cellfun('isclass',C,classname)

Description D = cellfun('fname',C) applies the function fname to the elements of the cellarray C and returns the results in the double array D. Each element of Dcontains the value returned by fname for the corresponding element in C. Theoutput array D is the same size as the cell array C.

These functions are supported:

D = cellfun('size',C,k) returns the size along the k-th dimension of eachelement of C.

D = cellfun('isclass',C,'classname') returns true for each element of Cthat matches classname. This function syntax returns false for objects thatare a subclass of classname.

Limitations If the cell array contains objects, cellfun does not call overloaded versions ofthe function fname.

Example Consider this 2-by-3 cell array:

C{1,1} = [1 2; 4 5];C{1,2} = 'Name';

Function Return Value

isempty true for an empty cell element

islogical true for a logical cell element

isreal true for a real cell element

length Length of the cell element

ndims Number of dimensions of the cell element

prodofsize Number of elements in the cell element

192

Page 243: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cellfun

C{1,3} = pi;C{2,1} = 2 + 4i;C{2,2} = 7;C{2,3} = magic(3);

cellfun returns a 2-by-3 double array:

D = cellfun('isreal',C)

D = 1 1 1 0 1 1

len = cellfun('length',C)

len = 2 4 1 1 1 3

isdbl = cellfun('isclass',C,'double')

isdbl = 1 0 1 1 1 1

See Also isempty, islogical, isreal, length, ndims, size

193

Page 244: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cellplot

1cellplotPurpose Graphically display the structure of cell arrays

Syntax cellplot(c)cellplot(c,'legend')handles = cellplot(...)

Description cellplot(c) displays a figure window that graphically represents the contentsof c. Filled rectangles represent elements of vectors and arrays, while scalarsand short text strings are displayed as text.

cellplot(c,'legend') also puts a legend next to the plot.

handles = cellplot(c) displays a figure window and returns a vector ofsurface handles.

Limitations The cellplot function can display only two-dimensional cell arrays.

Examples Consider a 2-by-2 cell array containing a matrix, a vector, and two text strings:

c{1,1} = '2-by-2';c{1,2} = 'eigenvalues of eye(2)';c{2,1} = eye(2);c{2,2} = eig(eye(2));

The command cellplot(c) produces:

2−by−2

194

Page 245: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cellstr

1cellstrPurpose Create cell array of strings from character array

Syntax c = cellstr(S)

Description c = cellstr(S) places each row of the character array S into separate cells ofc. Use the char function to convert back to a string matrix.

Examples Given the string matrix

S=['abc ';'defg';'hi ']

S = abc defg hi

whos S Name Size Bytes Class S 3x4 24 char array

The following command returns a 3-by-1 cell array.

c = cellstr(S)

c = 'abc' 'defg' 'hi'

whos c Name Size Bytes Class c 3x1 294 cell array

See Also iscellstr, strings

195

Page 246: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cgs

1cgsPurpose Conjugate Gradients Squared method

Syntax x = cgs(A,b)cgs(A,b,tol)cgs(A,b,tol,maxit)cgs(A,b,tol,maxit,M)cgs(A,b,tol,maxit,M1,M2)cgs(A,b,tol,maxit,M1,M2,x0)cgs(afun,b,tol,maxit,m1fun,m2fun,x0,p1,p2,...)[x,flag] = cgs(A,b,...)[x,flag,relres] = cgs(A,b,...)[x,flag,relres,iter] = cgs(A,b,...)[x,flag,relres,iter,resvec] = cgs(A,b,...)

Description x = cgs(A,b) attempts to solve the system of linear equations A*x = b for x.The n-by-n coefficient matrix A must be square and the column vector b musthave length n. A can be a function afun such that afun(x) returns A*x.

If cgs converges, a message to that effect is displayed. If cgs fails to convergeafter the maximum number of iterations or halts for any reason, a warningmessage is printed displaying the relative residual norm(b-A*x)/norm(b) andthe iteration number at which the method stopped or failed.

cgs(A,b,tol) specifies the tolerance of the method, tol. If tol is [], then cgsuses the default, 1e-6.

cgs(A,b,tol,maxit) specifies the maximum number of iterations, maxit. Ifmaxit is [] then cgs uses the default, min(n,20).

cgs(A,b,tol,maxit,M) and cgs(A,b,tol,maxit,M1,M2) use thepreconditioner M or M = M1*M2 and effectively solve the systeminv(M)*A*x = inv(M)*b for x. If M is [] then cgs applies no preconditioner. Mcan be a function that returns M\x.

cgs(A,b,tol,maxit,M1,M2,x0) specifies the initial guess x0. If x0 is [], thencgs uses the default, an all-zero vector.

196

Page 247: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cgs

cgs(afun,b,tol,maxit,m1fun,m2fun,x0,p1,p2,...) passes parametersp1,p2,... to functions afun(x,p1,p2,...), m1fun(x,p1,p2,...), andm2fun(x,p1,p2,...)

[x,flag] = cgs(A,b,...) returns a solution x and a flag that describes theconvergence of cgs.

Whenever flag is not 0, the solution x returned is that with minimal normresidual computed over all the iterations. No messages are displayed if theflag output is specified.

[x,flag,relres] = cgs(A,b,...) also returns the relative residualnorm(b-A*x)/norm(b). If flag is 0, then relres ≤ tol.

[x,flag,relres,iter] = cgs(A,b,...) also returns the iteration number atwhich x was computed, where 0 ≤ iter ≤ maxit.

[x,flag,relres,iter,resvec] = cgs(A,b,...) also returns a vector of theresidual norms at each iteration, including norm(b-A*x0).

Examples Example 1.

A = gallery('wilk',21);b = sum(A,2);tol = 1e-12; maxit = 15;M1 = diag([10:-1:1 1 1:10]);x = cgs(A,b,tol,maxit,M1,[],[]);

Flag Convergence

0 cgs converged to the desired tolerance tol within maxititerations.

1 cgs iterated maxit times but did not converge.

2 Preconditioner M was ill-conditioned.

3 cgs stagnated. (Two consecutive iterates were the same.)

4 One of the scalar quantities calculated during cgs becametoo small or too large to continue computing.

197

Page 248: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cgs

Alternatively, use this matrix-vector product function

function y = afun(x,n)y = [ 0;

x(1:n-1)] + [((n-1)/2:-1:0)';(1:(n-1)/2)'] .*x + [x(2:n);0 ];

and this preconditioner backsolve function

function y = mfun(r,n)y = r ./ [((n-1)/2:-1:1)'; 1; (1:(n-1)/2)'];

as inputs to cgs.

x1 = cgs(@afun,b,tol,maxit,@mfun,[],[],21);

Note that both afun and mfun must accept cgs’s extra input n=21.

Example 2.

load west0479A = west0479b = sum(A,2)[x,flag] = cgs(A,b)

flag is 1 because cgs does not converge to the default tolerance 1e-6 within thedefault 20 iterations.

[L1,U1] = luinc(A,1e-5)[x1,flag1] = cgs(A,b,1e-6,20,L1,U1)

flag1 is 2 because the upper triangular U1 has a zero on its diagonal, and cgsfails in the first iteration when it tries to solve a system such as U1*y = r for ywith backslash.

[L2,U2] = luinc(A,1e-6)[x2,flag2,relres2,iter2,resvec2] = cgs(A,b,1e-15,10,L2,U2)

flag2 is 0 because cgs converges to the tolerance of 6.344e-16 (the value ofrelres2) at the fifth iteration (the value of iter2) when preconditioned by theincomplete LU factorization with a drop tolerance of 1e-6.resvec2(1) = norm(b) and resvec2(6) = norm(b-A*x2). You can follow the

198

Page 249: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cgs

progress of cgs by plotting the relative residuals at each iteration starting fromthe initial estimate (iterate number 0) with

semilogy(0:iter2,resvec2/norm(b),'-o')xlabel('iteration number')ylabel('relative residual')

See Also bicg, bicgstab, gmres, lsqr, luinc, minres, pcg, qmr, symmlq

@ (function handle), \ (backslash)

References [1] Barrett, R., M. Berry, T. F. Chan, et al., Templates for the Solution of LinearSystems: Building Blocks for Iterative Methods, SIAM, Philadelphia, 1994.

[2] Sonneveld, Peter, “CGS: A fast Lanczos-type solver for nonsymmetric linearsystems”, SIAM J. Sci. Stat. Comput., January 1989, Vol. 10, No. 1, pp. 36-52.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 510

−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

iteration number

rela

tive

resi

dual

199

Page 250: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

char

1charPurpose Create character array (string)

Syntax S = char(X)S = char(C)S = char(t1,t2.t3...)

Description S = char(X) converts the array X that contains positive integers representingcharacter codes into a MATLAB character array (the first 127 codes are ASCII).The actual characters displayed depend on the character set encoding for agiven font. The result for any elements of X outside the range from 0 to 65535is not defined (and may vary from platform to platform). Use double to converta character array into its numeric codes.

S = char(C) when C is a cell array of strings, places each element of C into therows of the character array s. Use cellstr to convert back.

S = char(t1,t2,t3,..) forms the character array S containing the textstrings T1,T2,T3,... as rows, automatically padding each string with blanks toform a valid matrix. Each text parameter,Ti, can itself be a character array.This allows the creation of arbitarily large character arrays. Empty strings aresignificant.

Remarks Ordinarily, the elements of A are integers in the range 32:127, which are theprintable ASCII characters, or in the range 0:255, which are all 8-bit values.For noninteger values, or values outside the range 0:255, the charactersprinted are determined by fix(rem(A,256)).

Examples To print a 3-by-32 display of the printable ASCII characters:

ascii = char(reshape(32:127,32,3)')ascii =! ” # $ % & ' ( ) ∗ + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _' a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

200

Page 251: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

char

See Also cellstr, double, get, set, strings, strvcat, text

201

Page 252: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

checkin

1checkinPurpose Check in file

GraphicalInterface

As an alternative to the checkin function, use Source Control Check In in theEditor, Simulink, or Stateflow File menu.

Syntax checkin('filename','comments','string')checkin({'filename1','filename2','filename3', ...},'comments',

'string')checkin('filename','option','value', ...)

Description checkin('filename','comments','string') checks in the file namedfilename to the source control system. Use the full pathname for the filename.You must save the file before checking it in. The file can be open or closed whenyou use checkin. The string argument is a MATLAB string containingcheck-in comments for the source control system. You must supply thecomments argument and 'string'.

checkin({'filename1','filename2','filename3', ...},'comments','string') checks in the files named filename1 through filenamen to thesource control system. Use the full pathnames for the files. Additionalarguments apply to all files checked in.

checkin('filename','option','value', ...) provides additional checkinoptions. The option and value arguments are shown in the table below.

You can check in a file that you checked out in a previous MATLAB session orthat you checked out directly from your source control system.

optionArgument

Purpose value Argument

'force' When set to on, filename is checked ineven if the file has not changed since itwas checked out. The default value forforce is off.

'on''off' (default)

'lock' When set to on, filename remainschecked out. Comments are submitted.The default value for lock is off.

'on''off' (default)

202

Page 253: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

checkin

If you use the Merant PVCS source control system, you must specify theproject file in cmopts.m. See cmopts for instructions.

Examples Example 1 - Check in a File with CommentsTyping

checkin('/matlab/mymfiles/clock.m','comments','Adjustment forY2K')

checks in the file /matlab/mymfiles/clock.m to the source control system withthe comment Adjustment for Y2K.

Example 2 - Check in Multiple Files with CommentsTyping

checkin({'/matlab/mymfiles/clock.m', ...'/matlab/mymfiles/calendar.m'},'comments','Adjustment for Y2K')

checks two files into the source control system using the same comment foreach.

Example 3 - Check a File in and Keep It Checked outTyping

checkin('/matlab/mymfiles/clock.m','comments','Adjustment forY2K','lock','on')

checks the file /matlab/mymfiles/clock.m into the source control system andkeeps the file checked out.

See Also checkout, cmopts, undocheckout

203

Page 254: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

checkout

1checkoutPurpose Check out file

GraphicalInterface

As an alternative to the checkout function, use Source Control Check Out inthe Editor, Simulink, or Stateflow File menu.

Syntax checkout('filename')checkout({'filename1','filename2','filename3', ...})checkout('filename','option','value', ...)

Description checkout('filename') checks out the file named filename from the sourcecontrol system. filename must be the full pathname for the file. The file can beopen or closed when you use checkout.

checkout({'filename1','filename2','filename3', ...}) checks out thefiles named filename1 through filenamen from the source control system. Usethe full pathnames for the files. Additional arguments apply to all files checkedout.

204

Page 255: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

checkout

checkout('filename','option','value', ...) provides additionalcheckout options. The option and value arguments are shown in the tablebelow.

If you end the MATLAB session, the file remains checked out. You can check inthe file from within MATLAB during a later session, or directly from yoursource control system.

If you use the PVCS source control system, you must specify the project file incmopts.m. See cmopts for instructions.

Examples Example 1 - Check out a FileTyping

checkout('/matlab/mymfiles/clock.m')

checks out the file /matlab/mymfiles/clock.m from the source control system.

optionArgument

Purpose valueArgument

'force' When set to on, the checkout is forced,even if you already have the file checkedout. This is effectively an undocheckoutfollowed by a checkout. When force isset to off, you can’t check out the file ifyou already have it checked out.

'on''off' (default)

'lock' When set to on, the checkout gets the file,allows you to write to it, and locks the fileso that access to the file for others is readonly. When set to off, the checkout gets aread-only version of the file, allowinganother user to check out the file forupdating. With lock set to off, you don’thave to check in a file after checking itout.

'on' (default)'off'

'revision' Checks out the specified revision of thefile.

'version_num'

205

Page 256: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

checkout

Example 2 - Check out Multiple FilesTyping

checkout({'/matlab/mymfiles/clock.m',...'/matlab/mymfiles/calendar.m'})

checks out /matlab/mymfiles/clock.m and/matlab/mymfiles/calendar.m from the source control system.

Example 3 - Force a Checkout, Even If File Is Already Checked outTyping

checkout('/matlab/mymfiles/clock.m','force','on')

checks out /matlab/mymfiles/clock.m even if clock.m is already checked outto you.

Example 4 - Check out Specified Revision of FileTyping

checkout('/matlab/mymfiles/clock.m','revision','1.1')

checks out revision 1.1 of clock.m .

See Also checkin, cmopts, undocheckout

206

Page 257: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

chol

1cholPurpose Cholesky factorization

Syntax R = chol(X)[R,p] = chol(X)

Description The chol function uses only the diagonal and upper triangle of X. The lowertriangular is assumed to be the (complex conjugate) transpose of the upper.That is, X is Hermitian.

R = chol(X), where X is positive definite produces an upper triangular R sothat R'*R = X. If X is not positive definite, an error message is printed.

[R,p] = chol(X), with two output arguments, never produces an errormessage. If X is positive definite, then p is 0 and R is the same as above. If X isnot positive definite, then p is a positive integer and R is an upper triangularmatrix of order q = p-1 so that R'*R = X(1:q,1:q).

Examples The binomial coefficients arranged in a symmetric array create an interestingpositive definite matrix.

n = 5;X = pascal(n)X =

1 1 1 1 11 2 3 4 51 3 6 10 151 4 10 20 351 5 15 35 70

It is interesting because its Cholesky factor consists of the same coefficients,arranged in an upper triangular matrix.

R = chol(X)R =

1 1 1 1 10 1 2 3 40 0 1 3 60 0 0 1 40 0 0 0 1

207

Page 258: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

chol

Destroy the positive definiteness (and actually make the matrix singular) bysubtracting 1 from the last element.

X(n,n) = X(n,n)-1

X =1 1 1 1 11 2 3 4 51 3 6 10 151 4 10 20 351 5 15 35 69

Now an attempt to find the Cholesky factorization fails.

Algorithm chol uses the the LAPACK subroutines DPOTRF (real) and ZPOTRF (complex).

References [1] Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra,J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen,LAPACK User’s Guide, Third Edition, SIAM, Philadelphia, 1999.

See Also cholinc, cholupdate

208

Page 259: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

1cholincPurpose Sparse incomplete Cholesky and Cholesky-Infinity factorizations

Syntax R = cholinc(X,droptol)R = cholinc(X,options)R = cholinc(X,'0')[R,p] = cholinc(X,'0')R = cholinc(X,'inf')

Description cholinc produces two different kinds of incomplete Cholesky factorizations:the drop tolerance and the 0 level of fill-in factorizations. These factors may beuseful as preconditioners for a symmetric positive definite system of linearequations being solved by an iterative method such as pcg (PreconditionedConjugate Gradients). cholinc works only for sparse matrices.

R = cholinc(X,droptol) performs the incomplete Cholesky factorization of X,with drop tolerance droptol.

R = cholinc(X,options) allows additional options to the incompleteCholesky factorization. options is a structure with up to three fields:

Only the fields of interest need to be set.

droptol is a non-negative scalar used as the drop tolerance for the incompleteCholesky factorization. This factorization is computed by performing theincomplete LU factorization with the pivot threshold option set to 0 (whichforces diagonal pivoting) and then scaling the rows of the incomplete uppertriangular factor, U, by the square root of the diagonal entries in that column.Since the nonzero entries U(i,j) are bounded below by droptol*norm(X(:,j))(see luinc), the nonzero entries R(i,j) are bounded below by the local droptolerance droptol*norm(X(:,j))/R(i,i).

Setting droptol = 0 produces the complete Cholesky factorization, which is thedefault.

droptol Drop tolerance of the incomplete factorization

michol Modified incomplete Cholesky

rdiag Replace zeros on the diagonal of R

209

Page 260: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

michol stands for modified incomplete Cholesky factorization. Its value iseither 0 (unmodified, the default) or 1 (modified). This performs the modifiedincomplete LU factorization of X and scales the returned upper triangularfactor as described above.

rdiag is either 0 or 1. If it is 1, any zero diagonal entries of the upper triangularfactor R are replaced by the square root of the local drop tolerance in anattempt to avoid a singular factor. The default is 0.

R = cholinc(X,'0') produces the incomplete Cholesky factor of a real sparsematrix that is symmetric and positive definite using no fill-in. The uppertriangular R has the same sparsity pattern as triu(X), although R may be zeroin some positions where X is nonzero due to cancellation. The lower triangle ofX is assumed to be the transpose of the upper. Note that the positivedefiniteness of X does not guarantee the existence of a factor with the requiredsparsity. An error message results if the factorization is not possible. If thefactorization is successful, R'*R agrees with X over its sparsity pattern.

[R,p] = cholinc(X,'0') with two output arguments, never produces an errormessage. If R exists, p is 0. If R does not exist, then p is a positive integer and Ris an upper triangular matrix of size q-by-n where q = p-1. In this latter case,the sparsity pattern of R is that of the q-by-n upper triangle of X. R'*R agreeswith X over the sparsity pattern of its first q rows and first q columns.

R = cholinc(X,'inf') produces the Cholesky-Infinity factorization. Thisfactorization is based on the Cholesky factorization, and additionally handlesreal positive semi-definite matrices. It may be useful for finding a solution tosystems which arise in interior-point methods. When a zero pivot isencountered in the ordinary Cholesky factorization, the diagonal of theCholesky-Infinity factor is set to Inf and the rest of that row is set to 0. Thisforces a 0 in the corresponding entry of the solution vector in the associatedsystem of linear equations. In practice, X is assumed to be positive semi-definiteso even negative pivots are replaced with a value of Inf.

Remarks The incomplete factorizations may be useful as preconditioners for solvinglarge sparse systems of linear equations. A single 0 on the diagonal of the uppertriangular factor makes it singular. The incomplete factorization with a droptolerance prints a warning message if the upper triangular factor has zeros onthe diagonal. Similarly, using the rdiag option to replace a zero diagonal only

210

Page 261: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

gets rid of the symptoms of the problem, but it does not solve it. Thepreconditioner may not be singular, but it probably is not useful, and a warningmessage is printed.

The Cholesky-Infinity factorization is meant to be used within interior-pointmethods. Otherwise, its use is not recommended.

Examples Example 1.Start with a symmetric positive definite matrix, S.

S = delsq(numgrid('C',15));

S is the two-dimensional, five-point discrete negative Lapacian on the gridgenerated by numgrid('C',15).

Compute the Cholesky factorization and the incomplete Cholesky factorizationof level 0 to compare the fill-in. Make S singular by zeroing out a diagonal entryand compute the (partial) incomplete Cholesky factorization of level 0.

C = chol(S);R0 = cholinc(S,'0');S2 = S; S2(101,101) = 0;[R,p] = cholinc(S2,'0');

Fill-in occurs within the bands of S in the complete Cholesky factor, but nonein the incomplete Cholesky factor. The incomplete factorization of the singularS2 stopped at row p = 101 resulting in a 100-by-139 partial factor.

D1 = (R0'*R0).*spones(S)-S;D2 = (R'*R).*spones(S2)-S2;

211

Page 262: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

D1 has elements of the order of eps, showing that R0'*R0 agrees with S over itssparsity pattern. D2 has elements of the order of eps over its first 100 rows andfirst 100 columns, D2(1:100,:) and D2(:,1:100).

Example 2.The first subplot below shows that cholinc(S,0), the incomplete Choleskyfactor with a drop tolerance of 0, is the same as the Cholesky factor of S.

0 50 100

0

20

40

60

80

100

120

140

nz = 643

S

0 50 100

0

20

40

60

80

100

120

140

nz = 1557

C= chol(S)

0 50 100

0

20

40

60

80

100

120

140

nz = 391

R0=cholinc(S,’0’)

0 50 100

0

20

40

60

80

100

nz = 290

Partial factor [R,p]=cholinc(S2,’0’)

212

Page 263: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

Increasing the drop tolerance increases the sparsity of the incomplete factors,as seen below.

Unfortunately, the sparser factors are poor approximations, as is seen by theplot of drop tolerance versus norm(R'*R-S,1)/norm(S,1) in the next figure.

0 50 100

0

20

40

60

80

100

120

140

nz = 1557

cholinc(S,0)

0 50 100

0

20

40

60

80

100

120

140

nz = 1211

cholinc(S,1e−3)

0 50 100

0

20

40

60

80

100

120

140

nz = 671

cholinc(S,1e−2)

0 50 100

0

20

40

60

80

100

120

140

nz = 391

cholinc(S,1e−1)

10−4

10−3

10−2

10−1

100

0

500

1000

1500Drop tolerance vs nnz(cholinc(S,droptol))

10−4

10−3

10−2

10−1

100

10−4

10−3

10−2

10−1

100

Drop tolerance vs norm(R’*R−S)/norm(S)

213

Page 264: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

Example 3.The Hilbert matrices have (i,j) entries 1/(i+j-1) and are theoretically positivedefinite:

H3 = hilb(3)H3 = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000

R3 = chol(H3)R3 = 1.0000 0.5000 0.3333 0 0.2887 0.2887 0 0 0.0745

In practice, the Cholesky factorization breaks down for larger matrices:

H20 = sparse(hilb(20));[R,p] = chol(H20);p = 14

For hilb(20), the Cholesky factorization failed in the computation of row 14because of a numerically zero pivot. You can use the Cholesky-Infinityfactorization to avoid this error. When a zero pivot is encountered, cholincplaces an Inf on the main diagonal, zeros out the rest of the row, and continueswith the computation:

Rinf = cholinc(H20,'inf');

In this case, all subsequent pivots are also too small, so the remainder of theupper triangular factor is:

full(Rinf(14:end,14:end))ans = Inf 0 0 0 0 0 0 0 Inf 0 0 0 0 0 0 0 Inf 0 0 0 0 0 0 0 Inf 0 0 0 0 0 0 0 Inf 0 0 0 0 0 0 0 Inf 0

214

Page 265: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

0 0 0 0 0 0 Inf

Limitations cholinc works on square sparse matrices only. For cholinc(X,'0') andcholinc(X,'inf'), X must be real.

Algorithm R = cholinc(X,droptol) is obtained from [L,U] = luinc(X,options), whereoptions.droptol = droptol and options.thresh = 0. The rows of theuppertriangular U are scaled by the square root of the diagonal in that row, andthis scaled factor becomes R.

R = cholinc(X,options) is produced in a similar manner, except the rdiagoption translates into the udiag option and the milu option takes the value ofthe michol option.

R = cholinc(X,'0') is based on the “KJI” variant of the Choleskyfactorization. Updates are made only to positions which are nonzero in theupper triangle of X.

R = cholinc(X,'inf') is based on the algorithm in Zhang ([2]).

215

Page 266: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholinc

See Also chol, luinc, pcg

References [1] Saad, Yousef, Iterative Methods for Sparse Linear Systems, PWS PublishingCompany, 1996, Chapter 10 - Preconditioning Techniques.

[2] Zhang, Yin, Solving Large-Scale Linear Programs by Interior-Point MethodsUnder the MATLAB Environment, Department of Mathematics and Statistics,University of Maryland Baltimore County, Technical Report TR96-01

216

Page 267: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholupdate

1cholupdatePurpose Rank 1 update to Cholesky factorization

Syntax R1 = cholupdate(R,x)R1 = cholupdate(R,x,'+')R1 = cholupdate(R,x,'-')[R1,p] = cholupdate(R,x,'-')

Description R1 = cholupdate(R,x) where R = chol(A) is the original Choleskyfactorization of A, returns the upper triangular Cholesky factor of A + x*x',where x is a column vector of appropriate length. cholupdate uses only thediagonal and upper triangle of R. The lower triangle of R is ignored.

R1 = cholupdate(R,x,'+') is the same as R1 = cholupdate(R,x).

R1 = cholupdate(R,x,'-') returns the Cholesky factor of A - x*x'. Anerror message reports when R is not a valid Cholesky factor or when thedowndated matrix is not positive definite and so does not have a Choleskyfactoriza- tion.

[R1,p] = cholupdate(R,x,'-') will not return an error message. If p is 0,R1 is the Cholesky factor of A - x*x'. If p is greater than 0, R1 is the Choleskyfactor of the original A. If p is 1, cholupdate failed because the downdatedmatrix is not positive definite. If p is 2, cholupdate failed because the uppertriangle of R was not a valid Cholesky factor.

Remarks cholupdate works only for full matrices.

Example A = pascal(4)A =

1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20

217

Page 268: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholupdate

R = chol(A)R =

1 1 1 1 0 1 2 3 0 0 1 3 0 0 0 1

x = [0 0 0 1]';

This is called a rank one update to A since rank(x*x') is 1:

A + x*x'ans =

1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 21

Instead of computing the Cholesky factor with R1 = chol(A + x*x'), we canuse cholupdate:

R1 = cholupdate(R,x)R1 =

1.0000 1.0000 1.0000 1.0000 0 1.0000 2.0000 3.0000 0 0 1.0000 3.0000 0 0 0 1.4142

Next destroy the positive definiteness (and actually make the matrix singular)by subtracting 1 from the last element of A. The downdated matrix is:

218

Page 269: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cholupdate

A - x*x'ans =

1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 19

Compare chol with cholupdate:

R1 = chol(A-x*x')??? Error using ==> cholMatrix must be positive definite.

R1 = cholupdate(R,x,'-')??? Error using ==> cholupdateDowndated matrix must be positive definite.

However, subtracting 0.5 from the last element of A produces a positivedefinite matrix, and we can use cholupdate to compute its Cholesky factor:

x = [0 0 0 1/sqrt(2)]';R1 = cholupdate(R,x,'-')R1 = 1.0000 1.0000 1.0000 1.0000 0 1.0000 2.0000 3.0000 0 0 1.0000 3.0000 0 0 0 0.7071

Algorithm cholupdate uses the algorithms from the LINPACK subroutines ZCHUD andZCHDD. cholupdate is useful since computing the new Cholesky factor fromscratch is an algorithm, while simply updating the existing factor inthis way is an algorithm.

References Dongarra, J.J., J.R. Bunch, C.B. Moler, and G.W. Stewart, LINPACK Users'Guide, SIAM, Philadelphia, 1979.

See Also chol, qrupdate

O N3( )O N2( )

219

Page 270: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cla

1claPurpose Clear current axes

Syntax clacla reset

Description cla deletes from the current axes all graphics objects whose handles are nothidden (i.e., their HandleVisibility property is set to on).

cla reset deletes from the current axes all graphics objects regardless of thesetting of their HandleVisibility property and resets all axes properties,except Position and Units, to their default values.

Remarks The cla command behaves the same way when issued on the command line asit does in callback routines – it does not recognize the HandleVisibilitysetting of callback. This means that when issued from within a callbackroutine, cla deletes only those objects whose HandleVisibility property is setto on.

See Also clf, hold, newplot, reset

220

Page 271: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clabel

1clabelPurpose Contour plot elevation labels

Syntax clabel(C,h)clabel(C,h,v)clabel(C,h,'manual')

clabel(C)clabel(C,v)clabel(C,'manual')

Description The clabel function adds height labels to a two-dimensional contour plot.

clabel(C,h) rotates the labels and inserts them in the contour lines. Thefunction inserts only those labels that fit within the contour, depending on thesize of the contour.

clabel(C,h,v) creates labels only for those contour levels given in vector v,then rotates the labels and inserts them in the contour lines.

clabel(C,h,'manual') places contour labels at locations you select with amouse. Press the left mouse button (the mouse button on a single-buttonmouse) or the space bar to label a contour at the closest location beneath thecenter of the cursor. Press the Return key while the cursor is within the figurewindow to terminate labeling. The labels are rotated and inserted in thecontour lines.

clabel(C) adds labels to the current contour plot using the contour structureC output from contour. The function labels all contours displayed andrandomly selects label positions.

clabel(C,v) labels only those contour levels given in vector v.

clabel(C,'manual') places contour labels at locations you select with amouse.

Remarks When the syntax includes the argument h, this function rotates the labels andinserts them in the contour lines (see Example). Otherwise, the labels aredisplayed upright and a '+' indicates which contour line the label isannotating.

221

Page 272: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clabel

Examples Generate, draw, and label a simple contour plot.

[x,y] = meshgrid(–2:.2:2);z = x.^exp(–x.^2–y.^2);[C,h] = contour(x,y,z);clabel(C,h);

See Also contour, contourc, contourf

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

−0.2

−0.2

−9.869e−

17

−9.869e−17

0.2

0.2

0.2

0.2

0.2

0.4

0.4

0.4

0.4

0.60.

6

0.6

0.6

0.6

0.8

0.8

0.8

0.8

0.8

1

1

11

222

Page 273: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

class

1classPurpose Create object or return class of object

Syntax str = class(object)obj = class(s,'class_name')obj = class(s,'class_name',parent1,parent2...)obj = class(struct([]),'class_name',parent1,parent2...)

Description str = class(object) returns a string specifying the class of object.

The following table lists the object class names that may be returned. Allexcept the last one are MATLAB classes.

obj = class(s,'class_name') creates an object of MATLAB class'class_name' using structure s as a template. This syntax is valid only in afunction named class_name.m in a directory named @class_name (where'class_name' is the same as the string passed into class).

obj = class(s,'class_name',parent1,parent2,...) creates an object ofMATLAB class 'class_name' that inherits the methods and fields of the

cell Cell array

char Characters array

double Double-precision floating point number array

int8 8-bit signed integer array

int16 16-bit signed integer array

int32 32-bit signed integer array

sparse 2-D real (or complex) sparse array

struct Structure array

uint8 8-bit unsigned integer array

uint16 16-bit unsigned integer array

uint32 32-bit unsigned integer array

'matlab_class_name' Name of user-defined MATLAB class

'java_class_name' Name of Java class

223

Page 274: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

class

parent objects parent1, parent2, and so on. Structure s is used as a templatefor the object.

obj = class(struct([]),'class_name',parent1,parent2,...) creates anobject of MATLAB class 'class_name' that inherits the methods and fields ofthe parent objects parent1, parent2, and so on. Specifying the empty structure,struct([]), as the first argument ensures that the object created contains nofields other than those that are inherited from the parent objects.

Examples To return in nameStr the name of the class of Java object j

nameStr = class(j)

To create a user-defined MATLAB object of class polynom

p = class(p,'polynom')

See Also inferiorto, isa, superiorto

The “MATLAB Classes and Objects” and the “Calling Java from MATLAB”chapters in Programming and Data Types.

224

Page 275: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clc

1clcPurpose Clear Command Window

GraphicalInterface

As an alternative to the clc function, use Clear Command Window in theMATLAB desktop Edit menu.

Syntax clc

Description clc clears all input and output from the Command Window display, giving youa “clean screen.”

After using clc, you cannot use the scroll bar to see the history of functions, butstill can use the up arrow to see one previous line at a time.

Examples Use clc in an M-file to always display output in the same starting position onthe screen.

See Also clf, home

225

Page 276: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clear

1clearPurpose Remove items from the workspace

GraphicalInterface

As an alternative to the clear function, use Clear Workspace in the MATLABdesktop Edit menu, or in the context menu in the Workspace browser.

Syntax clearclear nameclear name1 name2 name3 ...clear global nameclear keywordclear('name1','name2','name3',...)

Description clear removes all variables from the workspace.

clear name removes just the M-file or MEX-file function or variable name fromthe workspace. If name is global, it is removed from the current workspace, butleft accessible to any functions declaring it global. If name has been locked bymlock, it remains in memory.

Use a partial path to distinguish between different overloaded versions of afunction. For example, clear inline/display clears only the display methodfor inline objects, leaving any other implementations in memory.

clear name1 name2 name3 ... removes name1, name2, and name3 from theworkspace.

clear global name removes the global variable name. If name is global, clearname removes name from the current workspace, but leaves it accessible to anyfunctions declaring it global. Use clear global name to completely remove aglobal variable.

clear keyword clears the items indicated by keyword.

Keyword Items Cleared

all Removes all variables, functions, and MEX-files frommemory, leaving the workspace empty.

226

Page 277: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clear

clear('name1','name2','name3',...) is the function form of the syntax. Usethis form when the variable name or function name is stored in a string.

Remarks You can use wildcards (*) to remove items selectively. For example, clear my*removes any variables whose names begin with the string my. You can also useclear in the form of a function, such as clear('name').

Clearing a function has the side effect of removing debugging breakpoints andreinitializing persistent variables, since the breakpoints for a function andpersistent variables are cleared whenever the M-file is changed or cleared.

When you use clear in a function, it has the following effect on items in yourfunction and base workspaces:

• clear name - If name is the name of a function, the function is cleared in boththe function workspace and in your base workspace.

• clear functions - All functions are cleared in both the function workspaceand in your base workspace.

• clear global - All global variables are cleared in both the functionworkspace and in your base workspace.

• clear all - All functions, global variables, and classes are cleared in boththe function workspace and in your base workspace.

classes The same as clear all, but also clears MATLAB classdefinitions. If any objects exist outside the workspace(e.g., in user data or persistent variables in a lockedM-file), a warning is issued and the class definition isnot cleared. Issue a clear classes function if thenumber or names of fields in a class are changed.

functions Clears all the currently compiled M-functions andMEX-functions from memory.

global Clears all global variables from the workspace.

import Removes the Java packages import list.

variables Clears all variables from the workspace.

227

Page 278: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clear

Limitations clear does not affect the amount of memory allocated to the MATLAB processunder UNIX.

Examples Given a workspace containing the following variables

Name Size Bytes Class

c 3x4 1200 cell array frame 1x1 java.awt.Frame gbl1 1x1 8 double array (global) gbl2 1x1 8 double array (global) xint 1x1 1 int8 array

You can clear a single variable, xint, by typing

clear xint

To clear all global variables, type

clear globalwhos Name Size Bytes Class

c 3x4 1200 cell array frame 1x1 java.awt.Frame

To clear all compiled M- and MEX-functions from memory, type clearfunctions. In the case shown below, clear functions was unable to clear oneM-file function, testfun, from memory because the function is locked.

clear functions % Attempt to clear all functions.

inmemans =

'testfun' % One M-file function remains in memory.

mislocked testfunans = 1 % This function is locked in memory.

Once you unlock the function from memory, you can clear it.

munlock testfun

228

Page 279: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clear

clear functions

inmemans = Empty cell array: 0-by-1

See Also import, mlock, munlock, pack, persistent, who, whos

229

Page 280: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clear (serial)

1clear (serial)Purpose Remove a serial port object from the MATLAB workspace

Syntax clear obj

Arguments

Description clear obj removes obj from the MATLAB workspace.

Remarks If obj is connected to the device and it is cleared from the workspace, then objremains connected to the device. You can restore obj to the workspace with theinstrfind function. A serial port object connected to the device has a Statusproperty value of open.

To disconnect obj from the device, use the fclose function. To remove obj frommemory, use the delete function. You should remove invalid serial port objectsfrom the workspace with clear.

If you use the help command to display help for clear, then you need to supplythe pathname shown below.

help serial/private/clear

Example This example creates the serial port object s, copies s to a new variable scopy,and clears s from the MATLAB workspace. s is then restored to the workspacewith instrfind and is shown to be identical to scopy.

s = serial('COM1');scopy = s;clear ss = instrfind;isequal(scopy,s)ans = 1

See Also Functionsdelete, fclose, instrfind, isvalid

PropertiesStatus

obj A serial port object or an array of serial port objects.

230

Page 281: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clf

1clfPurpose Clear current figure window

Syntax clfclf reset

Description clf deletes from the current figure all graphics objects whose handles are nothidden (i.e., their HandleVisibility property is set to on).

clf reset deletes from the current figure all graphics objects regardless of thesetting of their HandleVisibility property and resets all figure properties,except Position, Units, PaperPosition, and PaperUnits to their defaultvalues.

Remarks The clf command behaves the same way when issued on the command line asit does in callback routines – it does not recognize the HandleVisibilitysetting of callback. This means that when issued from within a callbackroutine, clf deletes only those objects whose HandleVisibility property is setto on.

See Also cla, clc, hold, reset

231

Page 282: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clipboard

1clipboardPurpose Copy and paste strings to and from the system clipboard.

GraphicalInterface

As an alternative to clipboard, use the Import Wizard. To use the ImportWizard to copy data from the clipboard, select Paste Special from the Editmenu.

Syntax clipboard('copy',data)str = clipboard('paste')data = clipboard('pastespecial')

Description CLIPBOARD('copy', data) sets the clipboard contents to data. If data is not acharacter array, clipboard uses mat2str to convert it to a string.

STR = CLIPBOARD('paste') returns the current contents of the clipboard as astring or as an empty string (' '), if the current clipboard content cannot beconverted to a string.

DATA = CLIPBOARD('pastespecial') returns the current contents of theclipboard as an array using uiimport.

Note Requires an active X display on Unix and Java elsewhere.

See Also load, uiimport

232

Page 283: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

clock

1clockPurpose Current time as a date vector

Syntax c = clock

Description c = clock returns a 6-element date vector containing the current date andtime in decimal form:

c = [year month day hour minute seconds]

The first five elements are integers. The seconds element is accurate to severaldigits beyond the decimal point. The statement fix(clock) rounds to integerdisplay format.

See Also cputime, datenum, datevec, etime, tic, toc

233

Page 284: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

close

1closePurpose Delete specified figure

Syntax closeclose(h)close nameclose allclose all hiddenstatus = close(...)

Description close deletes the current figure or the specified figure(s). It optionally returnsthe status of the close operation.

close deletes the current figure (equivalent to close(gcf)).

close(h) deletes the figure identified by h. If h is a vector or matrix, closedeletes all figures identified by h.

close name deletes the figure with the specified name.

close all deletes all figures whose handles are not hidden.

close all hidden deletes all figures including those with hidden handles.

status = close(...) returns 1 if the specified windows have been deletedand 0 otherwise.

Remarks The close function works by evaluating the specified figure’s CloseRequestFcnproperty with the statement:

eval(get(h,'CloseRequestFcn'))

The default CloseRequestFcn, closereq, deletes the current figure usingdelete(get(0,'CurrentFigure')). If you specify multiple figure handles,close executes each figure’s CloseRequestFcn in turn. If MATLAB encountersan error that terminates the execution of a CloseRequestFcn, the figure is notdeleted. Note that using your computer’s window manager (i.e., the Closemenu item) also calls the figure’s CloseRequestFcn.

If a figure’s handle is hidden (i.e., the figure’s HandleVisibility property is setto callback or off and the root ShowHiddenHandles property is set on), you

234

Page 285: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

close

must specify the hidden option when trying to access a figure using the alloption.

To delete all figures unconditionally, use the statements:

set(0,'ShowHiddenHandles','on')delete(get(0,'Children'))

The delete function does not execute the figure’s CloseRequestFcn; it simplydeletes the specified figure.

The figure CloseRequestFcn allows you to either delay or abort the closing of afigure once the close function has been issued. For example, you can display adialog box to see if the user really wants to delete the figure or save and cleanup before closing.

See Also delete, figure, gcf

The figure HandleVisibility property

The root ShowHiddenHandles property

235

Page 286: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

close (AVI)

1close (AVI)Purpose Close Audio Video Interleaved (AVI) file

Syntax aviobj = close(aviobj)

Description aviobj = close(aviobj) finishes writing and closes the AVI file associatedwith aviobj, which is an AVI file object, created using the avifile function.

See Also avifile, addframe, movie2avi

236

Page 287: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

closereq

1closereqPurpose Default figure close request function

Syntax closereq

Description closereq delete the current figure.

See Also The figure CloseRequestFcn property

237

Page 288: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cmopts

1cmoptsPurpose Get name of source control system, and for PVCS, get project filename

GraphicalInterface

As an alternative to cmopts, use preferences. Select File -> Preferences in theMATLAB desktop, and then select General -> Source Control.

Syntax cmoptsout = cmopts('DefaultConfigFile')

Description cmopts returns the name of the source control system you selected usingpreferences, which is one of the following:

clearcasepvcsrcssourcesafe

If you have not selected a source control system, cmopts returns

none

out = cmopts('DefaultConfigFile') returns the name of the projectconfiguration file. This is used for the PVCS source control system only.

Specifying a Source Control SystemTo specify the source control system:

1 From the MATLAB Editor window or from a Simulink or Stateflow modelwindow, select File>Source Control>Preferences.

The Preferences dialog box opens.

2 In the left pane, click the + for General, and then select Source Control.

The currently selected system is shown.

3 Select the system you want to use from the Source control system list.

4 Click OK.

For PVCS Only: Specifying the Project Configuration FileIf you use the PVCS source control system, you must specify a projectconfiguration file in cmopts.m. The cmopts.m file is located in

238

Page 289: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cmopts

$matlabroot\toolbox\local, where $matlabroot is the directory in whichMATLAB is installed.

Open cmopts.m in the MATLAB Editor or another text editor. Specify theproject configuration file in the section that starts with % BEGINCUSTOMIZATION SECTION. Assign the name of your project file, including the fullpathname, to the variable 'DefaultConfigFile'. Then save cmopts.m.

Examples Example - Specify the Project Configuration File for PVCSIf the project configuration file is Projmgr.cfg, add the following line incmopts.m.

DefaultConfigFile ='c:\\PVCS\\PVCSPROJ\\Projmgr.prj\\Projmgr.cfg'

Then, typing

cmopts('DefaultConfigFile')

returns

'c:\\PVCS\\PVCSPROJ\\Projmgr.prj\\Projmgr.cfg'

See Also checkin, checkout, customverctrl

239

Page 290: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colamd

1colamdPurpose Column approximate minimum degree permutation

Syntax p = colamd(S)p = colamd(S,knobs)[p,stats] = colamd(S)[p,stats] = colamd(S,knobs)

Description p = colamd(S) returns the column approximate minimum degreepermutation vector for the sparse matrix S. For a non-symmetric matrix S,S(:,p) tends to have sparser LU factors than S. The Cholesky factorization ofS(:,p)' * S(:,p) also tends to be sparser than that of S'*S.

knobs is a two-element vector. If S is m-by-n, then rows with more than(knobs(1))*n entries are ignored. Columns with more than (knobs(2))*mentries are removed prior to ordering, and ordered last in the outputpermutation p. If the knobs parameter is not present, thenknobs(1) = knobs(2) = spparms('wh_frac').

stats is an optional vector that provides data about the ordering and thevalidity of the matrix S.

Although, MATLAB built-in functions generate valid sparse matrices, a usermay construct an invalid sparse matrix using the MATLAB C or Fortran APIsand pass it to colamd. For this reason, colamd verifies that S is valid:

stats(1) Number of dense or empty rows ignored by colamd

stats(2) Number of dense or empty columns ignored by colamd

stats(3) Number of garbage collections performed on the internal datastructure used by colamd (roughly of size2.2*nnz(S) + 4*m + 7*n integers)

stats(4) 0 if the matrix is valid, or 1 if invalid

stats(5) Rightmost column index that is unsorted or contains duplicateentries, or 0 if no such column exists

stats(6) Last seen duplicate or out-of-order row index in the columnindex given by stats(5), or 0 if no such row index exists

stats(7) Number of duplicate and out-of-order row indices

240

Page 291: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colamd

• If a row index appears two or more times in the same column, colamd ignoresthe duplicate entries, continues processing, and provides information aboutthe duplicate entries in stats(4:7).

• If row indices in a column are out of order, colamd sorts each column of itsinternal copy of the matrix S (but does not repair the input matrix S),continues processing, and provides information about the out-of-orderentries in stats(4:7).

• If S is invalid in any other way, colamd cannot continue. It prints an errormessage, and returns no output arguments (p or stats) .

The ordering is followed by a column elimination tree post-ordering.

Note colamd tends to be faster than colmmd and tends to return a betterordering.

See Also colmmd, colperm, spparms, symamd, symmmd, symrcm

References The authors of the code for colamd are Stefan I. Larimore and Timothy A. Davis([email protected]), University of Florida. The algorithm was developed incollaboration with John Gilbert, Xerox PARC, and Esmond Ng, Oak RidgeNational Laboratory. Sparse Matrix Algorithms Research at the University ofFlorida: http://www.cise.ufl.edu/research/sparse/

241

Page 292: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colmmd

1colmmdPurpose Sparse column minimum degree permutation

Syntax p = colmmd(S)

Description p = colmmd(S) returns the column minimum degree permutation vector forthe sparse matrix S. For a nonsymmetric matrix S, this is a columnpermutation p such that S(:,p) tends to have sparser LU factors than S.

The colmmd permutation is automatically used by \ and / for the solution ofnonsymmetric and symmetric indefinite sparse linear systems.

Use spparms to change some options and parameters associated with heuristicsin the algorithm.

Algorithm The minimum degree algorithm for symmetric matrices is described in thereview paper by George and Liu [1]. For nonsymmetric matrices, MATLAB’sminimum degree algorithm is new and is described in the paper by Gilbert,Moler, and Schreiber [2]. It is roughly like symmetric minimum degree forA'∗A, but does not actually form A'∗A.

Each stage of the algorithm chooses a vertex in the graph of A'∗A of lowestdegree (that is, a column of A having nonzero elements in common with thefewest other columns), eliminates that vertex, and updates the remainder ofthe graph by adding fill (that is, merging rows). If the input matrix S is of sizem-by-n, the columns are all eliminated and the permutation is complete after nstages. To speed up the process, several heuristics are used to carry outmultiple stages simultaneously.

Examples The Harwell-Boeing collection of sparse matrices and the MATLAB demosdirectory include a test matrix WEST0479. It is a matrix of order 479 resultingfrom a model due to Westerberg of an eight-stage chemical distillation column.The spy plot shows evidence of the eight stages. The colmmd orderingscrambles this structure.

load west0479A = west0479;p = colmmd(A);spy(A)spy(A(:,p))

242

Page 293: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colmmd

Comparing the spy plot of the LU factorization of the original matrix with thatof the reordered matrix shows that minimum degree reduces the time andstorage requirements by better than a factor of 2.8. The nonzero counts are16777 and 5904, respectively.

spy(lu(A))spy(lu(A(:,p)))

0 100 200 300 400

0

100

200

300

400

nz = 1887

A

0 100 200 300 400

0

100

200

300

400

nz = 1887

A(:,p)

0 100 200 300 400

0

100

200

300

400

nz = 16777

lu(A)

0 100 200 300 400

0

100

200

300

400

nz = 5904

lu(A(:,p))

243

Page 294: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colmmd

See Also colamd, colperm, lu, spparms, symamd, symmmd, symrcm

The arithmetic operator \

References [1] George, Alan and Liu, Joseph, “The Evolution of the Minimum DegreeOrdering Algorithm,” SIAM Review, 1989, 31:1-19,.

[2] Gilbert, John R., Cleve Moler, and Robert Schreiber, “Sparse Matrices inMATLAB: Design and Implementation,” SIAM Journal on Matrix Analysisand Applications 13, 1992, pp. 333-356.

244

Page 295: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Colon :

1Colon :Purpose Create vectors, array subscripting, and for loop iterations

Description The colon is one of the most useful operators in MATLAB. It can create vectors,subscript arrays, and specify for iterations.

The colon operator uses the following rules to create regularly spaced vectors:

where i,j, and k are all scalars.

Below are the definitions that govern the use of the colon to pick out selectedrows, columns, and elements of vectors, matrices, and higher-dimensionalarrays:

j:k is the same as [j,j+1,...,k]

j:k is empty if j > k

j:i:k is the same as [j,j+i,j+2i, ...,k]

j:i:k is empty if i > 0 and j > k or if i < 0 and j < k

A(:,j) is the j-th column of A

A(i,:) is the i-th row of A

A(:,:) is the equivalent two-dimensional array. For matrices this isthe same as A.

A(j:k) is A(j), A(j+1),...,A(k)

A(:,j:k) is A(:,j), A(:,j+1),...,A(:,k)

A(:,:,k) is the kth page of three-dimensional array A.

A(i,j,k,:) is a vector in four-dimensional array A. The vector includesA(i,j,k,1), A(i,j,k,2), A(i,j,k,3), and so on.

A(:) is all the elements of A, regarded as a single column. On theleft side of an assignment statement, A(:) fills A, preservingits shape from before. In this case, the right side must containthe same number of elements as A.

245

Page 296: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Colon :

Examples Using the colon with integers,

D = 1:4

results in

D = 1 2 3 4

Using two colons to create a vector with arbitrary real increments between theelements,

E = 0:.1:.5

results in

E = 0 0.1000 0.2000 0.3000 0.4000 0.5000

The command

A(:,:,2) = pascal(3)

generates a three-dimensional array whose first page is all zeros.

A(:,:,1) = 0 0 0 0 0 0 0 0 0

A(:,:,2) = 1 1 1 1 2 3 1 3 6

See Also for, linspace, logspace, reshape

246

Page 297: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colorbar

1 colorbarPurpose Display colorbar showing the color scale

Syntax colorbarcolorbar('vert')colorbar('horiz')colorbar(h)h = colorbar(...)colorbar(...,'peer',axes_handle)

Description The colorbar function displays the current colormap in the current figure andresizes the current axes to accommodate the colorbar.

colorbar updates the most recently created colorbar or, when the current axesdoes not have a colorbar, colorbar adds a new vertical colorbar.

colorbar('vert') adds a vertical colorbar to the current axes.

colorbar('horiz') adds a horizontal colorbar to the current axes.

colorbar(h) uses the axes h to create the colorbar. The colorbar is horizontalif the width of the axes is greater than its height, as determined by the axesPosition property.

h = colorbar(...) returns a handle to the colorbar, which is an axes graphicsobject.

colorbar(...,'peer',axes_handle) creates a colorbar associated with theaxes axes_handle instead of the current axes.

Remarks colorbar works with two-dimensional and three-dimensional plots.

Examples Display a colorbar beside the axes.

surf(peaks(30))colormap cool

247

Page 298: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colorbar

colorbar

See Also colormap

05

1015

2025

30

0

5

10

15

20

25

30−8

−6

−4

−2

0

2

4

6

8

10

−6

−4

−2

0

2

4

6

8

248

Page 299: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colordef

1colordefPurpose Sets default property values to display different color schemes

Syntax colordef whitecolordef blackcolordef nonecolordef(fig,color_option)h = colordef('new',color_option)

Description colordef enables you to select either a white or black background for graphicsdisplay. It sets axis lines and labels to show up against the background color.

colordef white sets the axis background color to white, the axis lines andlabels to black, and the figure background color to light gray.

colordef black sets the axis background color to black, the axis lines andlabels to white, and the figure background color to dark gray.

colordef none sets the figure coloring to that used by MATLAB Version 4(essentially a black background).

colordef(fig,color_option) sets the color scheme of the figure identified bythe handle fig to the color option 'white', 'black', or 'none'.

h = colordef('new',color_option) returns the handle to a new figurecreated with the specified color options (i.e., 'white', 'black', or 'none').

Remarks colordef affects only subsequently drawn figures, not those currently on thedisplay. This is because colordef works by setting default property values (onthe root or figure level). You can list the currently set default values on the rootlevel with the statement:

get(0,'defaults')

You can remove all default values using the reset command:

reset(0)

See the get and reset references pages for more information.

See Also whitebg

249

Page 300: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colormap

1colormapPurpose Set and get the current colormap

Syntax colormap(map)colormap('default')cmap = colormap

Description A colormap is an m-by-3 matrix of real numbers between 0.0 and 1.0. Each rowis an RGB vector that defines one color. The kth row of the colormap defines thek-th color, where map(k,:) = [r(k) g(k) b(k)]) specifies the intensity of red,green, and blue.

colormap(map) sets the colormap to the matrix map. If any values in map areoutside the interval [0 1], MATLAB returns the error: Colormap must havevalues in [0,1].

colormap('default') sets the current colormap to the default colormap.

cmap = colormap; retrieves the current colormap. The values returned are inthe interval [0 1].

Specifying ColormapsM-files in the color directory generate a number of colormaps. Each M-fileaccepts the colormap size as an argument. For example,

colormap(hsv(128))

creates an hsv colormap with 128 colors. If you do not specify a size, MATLABcreates a colormap the same size as the current colormap.

Supported ColormapsMATLAB supports a number of colormaps.

• autumn varies smoothly from red, through orange, to yellow.

• bone is a grayscale colormap with a higher value for the blue component.This colormap is useful for adding an “electronic” look to grayscale images.

• colorcube contains as many regularly spaced colors in RGB colorspace aspossible, while attempting to provide more steps of gray, pure red, puregreen, and pure blue.

250

Page 301: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colormap

• cool consists of colors that are shades of cyan and magenta. It variessmoothly from cyan to magenta.

• copper varies smoothly from black to bright copper.

• flag consists of the colors red, white, blue, and black. This colormapcompletely changes color with each index increment.

• gray returns a linear grayscale colormap.

• hot varies smoothly from black, through shades of red, orange, and yellow,to white.

• hsv varies the hue component of the hue-saturation-value color model. Thecolors begin with red, pass through yellow, green, cyan, blue, magenta, andreturn to red. The colormap is particularly appropriate for displayingperiodic functions. hsv(m) is the same as hsv2rgb([h ones(m,2)]) where his the linear ramp, h = (0:m–1)'/m.

• jet ranges from blue to red, and passes through the colors cyan, yellow, andorange. It is a variation of the hsv colormap. The jet colormap is associatedwith an astrophysical fluid jet simulation from the National Center forSupercomputer Applications. See the “Examples” section.

• lines produces a colormap of colors specified by the axes ColorOrderproperty and a shade of gray.

• pink contains pastel shades of pink. The pink colormap provides sepia tonecolorization of grayscale photographs.

• prism repeats the six colors red, orange, yellow, green, blue, and violet.

• spring consists of colors that are shades of magenta and yellow.

• summer consists of colors that are shades of green and yellow.

• white is an all white monochrome colormap.

• winter consists of colors that are shades of blue and green.

Examples The images and colormaps demo, imagedemo, provides an introduction tocolormaps. Select Color Spiral from the menu. This uses the pcolor functionto display a 16-by-16 matrix whose elements vary from 0 to 255 in a rectilinearspiral. The hsv colormap starts with red in the center, then passes throughyellow, green, cyan, blue, and magenta before returning to red at the outsideend of the spiral. Selecting Colormap Menu gives access to a number of othercolormaps.

251

Page 302: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colormap

The rgbplot function plots colormap values. Try rgbplot(hsv),rgbplot(gray), and rgbplot(hot).

The following commands display the flujet data using the jet colormap.

load flujetimage(X)colormap(jet)

The demos directory contains a CAT scan image of a human spine. To view theimage, type the following commands:

load spineimage(X)

252

Page 303: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colormap

colormap bone

Algorithm Each figure has its own Colormap property. colormap is an M-file that sets andgets this property.

See Also brighten, caxis, contrast, hsv2rgb, pcolor, rgb2hsv, rgbplot

The Colormap property of figure graphics objects.

50 100 150 200 250 300 350 400 450

50

100

150

200

250

300

350

253

Page 304: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ColorSpec

1ColorSpecPurpose Color specification

Description ColorSpec is not a command; it refers to the three ways in which you specifycolor in MATLAB:

• RGB triple

• Short name

• Long name

The short names and long names are MATLAB strings that specify one of eightpredefined colors. The RGB triple is a three-element row vector whoseelements specify the intensities of the red, green, and blue components of thecolor; the intensities must be in the range [0 1]. The following table lists thepredefined colors and their RGB equivalents.

Remarks The eight predefined colors and any colors you specify as RGB values are notpart of a figure’s colormap, nor are they affected by changes to the figure’scolormap. They are referred to as fixed colors, as opposed to colormap colors.

Examples To change the background color of a figure to green, specify the color with ashort name, a long name, or an RGB triple. These statements generateequivalent results:

whitebg('g')

RGB Value Short Name Long Name

[1 1 0] y yellow

[1 0 1] m magenta

[0 1 1] c cyan

[1 0 0] r red

[0 1 0] g green

[0 0 1] b blue

[1 1 1] w white

[0 0 0] k black

254

Page 305: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ColorSpec

whitebg('green')whitebg([0 1 0]);

You can use ColorSpec anywhere you need to define a color. For example, thisstatement changes the figure background color to pink:

set(gcf,'Color',[1,0.4,0.6])

See Also bar, bar3, colordef, colormap, fill, fill3, whitebg

255

Page 306: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

colperm

1colpermPurpose Sparse column permutation based on nonzero count

Syntax j = colperm(S)

Description j = colperm(S) generates a permutation vector j such that the columns ofS(:,j) are ordered according to increasing count of nonzero entries. This issometimes useful as a preordering for LU factorization; in this case uselu(S(:,j)).

If S is symmetric, then j = colperm(S) generates a permutation j so that boththe rows and columns of S(j,j) are ordered according to increasing count ofnonzero entries. If S is positive definite, this is sometimes useful as apreordering for Cholesky factorization; in this case use chol(S(j,j)).

Algorithm The algorithm involves a sort on the counts of nonzeros in each column.

Examples The n-by-n arrowhead matrix

A = [ones(1,n); ones(n-1,1) speye(n-1,n-1)]

has a full first row and column. Its LU factorization, lu(A), is almostcompletely full. The statement

j = colperm(A)

returns j = [2:n 1]. So A(j,j) sends the full row and column to the bottomand the rear, and lu(A(j,j)) has the same nonzero structure as A itself.

On the other hand, the Bucky ball example, B = bucky,

has exactly three nonzero elements in each row and column, soj = colperm(B) is the identity permutation and is no help at all for reducingfill-in with subsequent factorizations.

See Also chol, colamd, colmmd, lu, spparms, symamd, symmmd, symrcm

256

Page 307: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

comet

1cometPurpose Two-dimensional comet plot

Syntax comet(y)comet(x,y)comet(x,y,p)

Description A comet plot is an animated graph in which a circle (the comet head) traces thedata points on the screen. The comet body is a trailing segment that follows thehead. The tail is a solid line that traces the entire function.

comet(y) displays a comet plot of the vector y.

comet(x,y) displays a comet plot of vector y versus vector x.

comet(x,y,p) specifies a comet body of length p*length(y). p defaults to 0.1.

Remarks Note that the trace left by comet is created by using an EraseMode of none,which means you cannot print the plot (you get only the comet head) and itdisappears if you cause a redraw (e.g., by resizing the window).

Examples Create a simple comet plot:

t = 0:.01:2*pi;x = cos(2∗t).*(cos(t).^2);y = sin(2∗t).*(sin(t).^2);comet(x,y);

See Also comet3

257

Page 308: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

comet3

1comet3Purpose Three-dimensional comet plot

Syntax comet3(z)comet3(x,y,z)comet3(x,y,z,p)

Description A comet plot is an animated graph in which a circle (the comet head) traces thedata points on the screen. The comet body is a trailing segment that follows thehead. The tail is a solid line that traces the entire function.

comet3(z) displays a three-dimensional comet plot of the vector z.

comet3(x,y,z) displays a comet plot of the curve through the points[x(i),y(i),z(i)].

comet3(x,y,z,p) specifies a comet body of length p∗length(y).

Remarks Note that the trace left by comet3 is created by using an EraseMode of none,which means you cannot print the plot (you get only the comet head) and itdisappears if you cause a redraw (e.g., by resizing the window).

Examples Create a three-dimensional comet plot.

t = -10*pi:pi/250:10*pi;comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t);

See Also comet

258

Page 309: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

compan

1companPurpose Companion matrix

Syntax A = compan(u)

Description A = compan(u) returns the corresponding companion matrix whose first row is-u(2:n)/u(1), where u is a vector of polynomial coefficients. The eigenvaluesof compan(u) are the roots of the polynomial.

Examples The polynomial has a companion matrixgiven by

u = [1 0 -7 6]A = compan(u)A =

0 7 -61 0 00 1 0

The eigenvalues are the polynomial roots:

eig(compan(u))ans =

-3.00002.00001.0000

This is also roots(u).

See Also eig, poly, polyval, roots

x 1–( ) x 2–( ) x 3+( ) x3 7x– 6+=

259

Page 310: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

compass

1compassPurpose Plot arrows emanating from the origin

Syntax compass(X,Y)compass(Z)compass(...,LineSpec)h = compass(...)

Description A compass plot displays direction or velocity vectors as arrows emanating fromthe origin. X, Y, and Z are in Cartesian coordinates and plotted on a circulargrid.

compass(X,Y) displays a compass plot having n arrows, where n is the numberof elements in X or Y. The location of the base of each arrow is the origin. Thelocation of the tip of each arrow is a point relative to the base and determinedby [X(i),Y(i)].

compass(Z) displays a compass plot having n arrows, where n is the number ofelements in Z. The location of the base of each arrow is the origin. The locationof the tip of each arrow is relative to the base as determined by the real andimaginary components of Z. This syntax is equivalent tocompass(real(Z),imag(Z)).

compass(...,LineSpec) draws a compass plot using the line type, markersymbol, and color specified by LineSpec.

h = compass(...) returns handles to line objects.

Examples Draw a compass plot of the eigenvalues of a matrix.

Z = eig(randn(20,20));compass(Z)

260

Page 311: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

compass

See Also feather, LineSpec, rose

1.0538

2.1076

3.1613

4.2151

5.2689

30

210

60

240

90

270

120

300

150

330

180 0

261

Page 312: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

complex

1 complexPurpose Construct complex data from real and imaginary components

Syntax c = complex(a,b)c = complex(a)

Description c = complex(a,b) creates a complex output, c, from the two real inputs.

c = a + bi

The output is the same size as the inputs, which must be equally sized vectors,matrices, or multi-dimensional arrays.

The complex function provides a useful substitute for expressions such as

a + i*b or a + j*b

in cases when the names “i” and “j” may be used for other variables (and donot equal ), or when a and b are not double-precision.

c = complex(a) uses input a as the real component of the complex output. Theimaginary component is zero.

c = a + 0i

Example Create complex uint8 vector from two real uint8 vectors.

a = uint8([1;2;3;4])b = uint8([2;2;7;7])

c = complex(a,b)

c = 1.0000 + 2.0000i 2.0000 + 2.0000i 3.0000 + 7.0000i 4.0000 + 7.0000i

See Also imag, real

1–

262

Page 313: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

computer

1computerPurpose Identify the computer on which MATLAB is running

Syntax str = computer[str,maxsize] = computer

Description str = computer returns a string with the computer type on which MATLAB isrunning.

[str,maxsize] = computer returns the integer maxsize, which contains themaximum number of elements allowed in an array with this version ofMATLAB.

The list of supported computers changes as new computers are added andothers become obsolete. A typical list follows

Remarks SGI64 users prior to R12 must migrate to SGI with R12.LNX86 users prior to R12 must migrate to GLNX86 with R12.

See Also isunix

String Computer

ALPHA Compaq Alpha

HP700 HP 9000/700

IBM_RS IBM RS6000 workstation

GLNX86 Linux on PC compatible

PCWIN MS-Windows

SGI Silicon Graphics

SOL2 Solaris 2 SPARC workstation

263

Page 314: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cond

1condPurpose Condition number with respect to inversion

Syntax c = cond(X)c = cond(X,p)

Description The condition number of a matrix measures the sensitivity of the solution of asystem of linear equations to errors in the data. It gives an indication of theaccuracy of the results from matrix inversion and the linear equation solution.Values of cond(X) and cond(X,p) near 1 indicate a well-conditioned matrix.

c = cond(X) returns the 2-norm condition number, the ratio of the largestsingular value of X to the smallest.

c = cond(X,p) returns the matrix condition number in p-norm:

norm(X,p) * norm(inv(X),p

Algorithm The algorithm for cond (when p = 2) uses the singular value decomposition,svd.

See Also condeig, condest, norm, normest, rank, rcond, svd

References [1] Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra,J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen,LAPACK User’s Guide, Third Edition, SIAM, Philadelphia, 1999.

If p is... Then cond(X,p) returns the...

1 1-norm condition number

2 2-norm condition number

'fro' Frobenius norm condition number

inf Infinity norm condition number

264

Page 315: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

condeig

1condeigPurpose Condition number with respect to eigenvalues

Syntax c = condeig(A)[V,D,s] = condeig(A)

Description c = condeig(A) returns a vector of condition numbers for the eigenvalues of A.These condition numbers are the reciprocals of the cosines of the anglesbetween the left and right eigenvectors.

[V,D,s] = condeig(A) is equivalent to: [V,D] = eig(A); s = condeig(A);.

Large condition numbers imply that A is near a matrix with multipleeigenvalues.

See Also balance, cond, eig

265

Page 316: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

condest

1condestPurpose 1-norm condition number estimate

Syntax c = condest(A)[c,v] = condest(A)

Description c = condest(A) computes a lower bound C for the 1-norm condition number ofa square matrix A.

c = condest(A,t) changes t, a positive integer parameter equal to thenumber of columns in an underlying iteration matrix. Increasing the numberof columns usually gives a better condition estimate but increases the cost. Thedefault is t = 2, which almost always gives an estimate correct to within afactor 2.

[c,v] = condest(A) also computes a vector v which is an approximate nullvector if c is large. v satisfies norm(A*v,1) = norm(A,1)*norm(v,1)/c.

Note condest invokes rand. If repeatable results are required then invokerand('state',j), for some j, before calling this function.

This function is particularly useful for sparse matrices.

condest uses block 1-norm power method of Higham and Tisseur.

See Also cond, norm, normest

Reference [1] Higham, N. J. and F. Tisseur, “A Block Algorithm for Matrix 1-NormEstimation, with an Application to 1-Norm Pseudospectra,” SIAM JournalMatrix Anal. Appl., Vol. 21, No. 4, 2000, pp.1185-1201.

266

Page 317: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

coneplot

1coneplotPurpose Plot velocity vectors as cones in a 3-D vector field

Syntax coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz)coneplot(U,V,W,Cx,Cy,Cz)coneplot(...,s)coneplot(...,color)coneplot(...,'quiver')coneplot(...,'method')coneplot(X,Y,Z,U,V,W,'nointerp')h = coneplot(...)

Description coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz) plots velocity vectors as cones pointing inthe direction of the velocity vector and having a length proportional to themagnitude of the velocity vector.

• X, Y, Z define the coordinates for the vector field.

• U, V, W define the vector field. These arrays must be the same size, monotonic,and 3-D plaid (such as the data produced by meshgrid).

• Cx, Cy, Cz define the location of the cones in vector field. The section "StartingPoints for Stream Plots" in Visualization Techniques provides moreinformation on defining starting points.

coneplot(U,V,W,Cx,Cy,Cz) (omitting the X, Y, and Z arguments) assumes[X,Y,Z] = meshgrid(1:n,1:m,1:p) where [m,n,p]= size(U).

coneplot(...,s) MATLAB automatically scales the cones to fit the graph andthen stretches them by the scale factor s. If you do not specify a value for s,MATLAB uses a value of 1. Use s = 0 to plot the cones without automaticscaling.

coneplot(...,color) interpolates the array color onto the vector field andthen colors the cones according to the interpolated values. The size of the colorarray must be the same size as the U, V, W arrays. This option works only withcones (i.e., not with the quiver option).

coneplot(...,'quiver') draws arrows instead of cones (see quiver3 for anillustration of a quiver plot).

267

Page 318: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

coneplot

coneplot(...,'method') specifies the interpolation method to use. methodcan be: linear, cubic, nearest. linear is the default (see interp3 for adiscussion of these interpolation methods)

coneplot(X,Y,Z,U,V,W,'nointerp') does not interpolate the positions of thecones into the volume. The cones are drawn at positions defined by X, Y, Z andare oriented according to U, V, W. Arrays X, Y, Z, U, V, W must all be the same size.

h = coneplot(...) returns the handle to the patch object used to draw thecones. You can use the set command to change the properties of the cones.

Remarks coneplot automatically scales the cones to fit the graph, while keeping themin proportion to the respective velocity vectors.

It is usually best to set the data aspect ratio of the axes before calling coneplot.You can set the ratio using the daspect command,

daspect([1,1,1])

Examples This example plots the velocity vector cones for vector volume datarepresenting the motion of air through a rectangular region of space. The finalgraph employs a number of enhancements to visualize the data moreeffectively. These include:

• Cone plots indicate the magnitude and direction of the wind velocity.

• Slice planes placed at the limits of the data range provide a visual context forthe cone plots within the volume.

• Directional lighting provides visual queues as to the orientation of the cones.

• View adjustments compose the scene to best reveal the information contentof the data by selecting the view point, projection type, and magnification.

1. Load and Inspect DataThe winds data set contains six 3-D arrays: u, v, and w specify the vectorcomponents at each of the coordinate specified in x, y, and z. The coordinatesdefine a lattice grid structure where the data is sampled within the volume.

268

Page 319: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

coneplot

It is useful to establish the range of the data to place the slice planes and tospecify where you want the cone plots (min, max).

load windxmin = min(x(:));xmax = max(x(:));ymin = min(y(:));ymax = max(y(:));zmin = min(z(:));

2. Create the Cone Plot

• Decide where in data space you want to plot cones. This example selects thefull range of x and y in eight steps and the range 3 to 15 in four steps in z(linspace, meshgrid).

• Use daspect to set the data aspect ratio of the axes before calling coneplotso MATLAB can determine the proper size of the cones.

• Draw the cones, setting the scale factor to 5 to make the cones larger thanthe default size.

• Set the coloring of each cone (FaceColor, EdgeColor).

daspect([2,2,1])xrange = linspace(xmin,xmax,8);yrange = linspace(ymin,ymax,8);zrange = 3:4:15;[cx cy cz] = meshgrid(xrange,yrange,zrange);hcones = coneplot(x,y,z,u,v,w,cx,cy,cz,5);set(hcones,'FaceColor','red','EdgeColor','none')

269

Page 320: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

coneplot

3. Add the Slice Planes

• Calculate the magnitude of the vector field (which represents wind speed) togenerate scalar data for the slice command.

• Create slice planes along the x-axis at xmin and xmax, along the y-axis atymax, and along the z-axis at zmin.

• Specify interpolated face color so the slice coloring indicates wind speed anddo not draw edges (hold, slice, FaceColor, EdgeColor).

hold onwind_speed = sqrt(u.^2 + v.^2 + w.^2);hsurfaces = slice(x,y,z,wind_speed,[xmin,xmax],ymax,zmin);set(hsurfaces,'FaceColor','interp','EdgeColor','none')hold off

4. Define the View

• Use the axis command to set the axis limits equal to the range of the data.

• Orient the view to azimuth = 30 and elevation = 40 (rotate3d is a usefulcommand for selecting the best view).

• Select perspective projection to provide a more realistic looking volume(camproj).

• Zoom in on the scene a little to make the plot as large as possible (camzoom).

axis tight; view(30,40); axis offcamproj perspective; camzoom(1.5)

5. Add Lighting to the SceneThe light source affects both the slice planes (surfaces) and the cone plots(patches). However, you can set the lighting characteristics of eachindependently.

• Add a light source to the right of the camera and use Phong lighting give thecones and slice planes a smooth, three-dimensional appearance (camlight,lighting).

• Increase the value of the AmbientStrength property for each slice plane toimprove the visibility of the dark blue colors. (Note that you can also specifya different colormap to change to coloring of the slice planes.)

270

Page 321: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

coneplot

• Increase the value of the DiffuseStrength property of the cones to brightenparticularly those cones not showing specular reflections.

camlight right; lighting phongset(hsurfaces,'AmbientStrength',.6)set(hcones,'DiffuseStrength',.8)

See Also isosurface, patch, reducevolume, smooth3, streamline, stream2, stream3,subvolume

271

Page 322: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

conj

1conjPurpose Complex conjugate

Syntax ZC = conj(Z)

Description ZC = conj(Z) returns the complex conjugate of the elements of Z.

Algorithm If Z is a complex array:

conj(Z) = real(Z) - i∗imag(Z)

See Also i, j, imag, real

272

Page 323: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

continue

1continuePurpose Pass control to the next iteration of for or while loop

Syntax continue

Description continue passes control to the next iteration of the for or while loop in whichit appears, skipping any remaining statements in the body of the loop.

In nested loops, continue passes control to the next iteration of the for orwhile loop enclosing it.

See Also break, for, return, while

273

Page 324: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contour

1contourPurpose Two-dimensional contour plot

Syntax contour(Z)contour(Z,n)contour(Z,v)contour(X,Y,Z)contour(X,Y,Z,n)contour(X,Y,Z,v)contour(...,LineSpec)[C,h] = contour(...)

Description A contour plot displays isolines of matrix Z. Label the contour lines usingclabel.

contour(Z) draws a contour plot of matrix Z, where Z is interpreted as heightswith respect to the x-y plane. Z must be at least a 2-by-2 matrix. The numberof contour levels and the values of the contour levels are chosen automaticallybased on the minimum and maximum values of Z. The ranges of the x- andy-axis are [1:n] and [1:m], where [m,n] = size(Z).

contour(Z,n) draws a contour plot of matrix Z with n contour levels.

contour(Z,v) draws a contour plot of matrix Z with contour lines at the datavalues specified in vector v. The number of contour levels is equal to length(v).To draw a single contour of level i, use contour(Z,[i i]).

contour(X,Y,Z), contour(X,Y,Z,n), and contour(X,Y,Z,v) draw contourplots of Z. X and Y specify the x- and y-axis limits. When X and Y are matrices,they must be the same size as Z, in which case they specify a surface as surfdoes.

contour(...,LineSpec) draws the contours using the line type and colorspecified by LineSpec. contour ignores marker symbols.

[C,h] = contour(...) returns the contour matrix C (see contourc) and avector of handles to graphics objects. clabel uses the contour matrix C to createthe labels. contour creates patch graphics objects unless you specify LineSpec,in which case contour creates line graphics objects.

274

Page 325: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contour

Remarks If you do not specify LineSpec, colormap and caxis control the color.

If X or Y is irregularly spaced, contour calculates contours using a regularlyspaced contour grid, then transforms the data to X or Y.

Examples To view a contour plot of the function

over the range –2 ≤ x ≤ 2, –2 ≤ y ≤ 3, create matrix Z using the statements

[X,Y] = meshgrid(–2:.2:2,–2:.2:3);Z = X.∗exp(–X.^2–Y.^2);

Then, generate a contour plot of Z.

[C,h] = contour(X,Y,Z);clabel(C,h)colormap cool

View the same function over the same range with 20 evenly spaced contourlines and colored with the default colormap jet.

z xe x2 y2––( )=

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3

−0.3

−0.2

−0.2

−0.1

−0.1

−0.1

0 0

0.1

0.1

0.1

0.2

0.2

0.3

0.4

275

Page 326: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contour

contour(X,Y,Z,20)

Use interp2 and contour to create smoother contours.

Z = magic(4);[C,h] = contour(interp2(Z,4));clabel(C,h)

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3

276

Page 327: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contour

See Also clabel, contour3, contourc, contourf, interp2, quiver

5 10 15 20 25 30 35 40 45

5

10

15

20

25

30

35

40

45

4

6

8 8

8

8

8

8 8

10

10

10

10

10

12

277

Page 328: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contour3

1contour3Purpose Three-dimensional contour plot

Syntax contour3(Z)contour3(Z,n)contour3(Z,v)contour3(X,Y,Z)contour3(X,Y,Z,n)contour3(X,Y,Z,v)contour3(...,LineSpec)[C,h] = contour3(...)

Description contour3 creates a three-dimensional contour plot of a surface defined on arectangular grid.

contour3(Z) draws a contour plot of matrix Z in a three-dimensional view. Z isinterpreted as heights with respect to the x-y plane. Z must be at least a 2-by-2matrix. The number of contour levels and the values of contour levels arechosen automatically. The ranges of the x- and y-axis are [1:n] and [1:m],where [m,n] = size(Z).

contour3(Z,n) draws a contour plot of matrix Z with n contour levels in athree-dimensional view.

contour3(Z,v) draws a contour plot of matrix Z with contour lines at thevalues specified in vector v. The number of contour levels is equal to length(v).To draw a single contour of level i, use contour(Z,[i i]).

contour3(X,Y,Z), contour3(X,Y,Z,n), and contour3(X,Y,Z,v) use X and Yto define the x- and y-axis limits. If X is a matrix, X(1,:) defines the x-axis. IfY is a matrix, Y(:,1) defines the y-axis. When X and Y are matrices, they mustbe the same size as Z, in which case they specify a surface as surf does.

contour3(...,LineSpec) draws the contours using the line type and colorspecified by LineSpec.

[C,h] = contour3(...) returns the contour matrix C as described in thefunction contourc and a column vector containing handles to graphics objects.contour3 creates patch graphics objects unless you specify LineSpec, in whichcase contour3 creates line graphics objects.

278

Page 329: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contour3

Remarks If you do not specify LineSpec, colormap and caxis control the color.

If X or Y is irregularly spaced, contour3 calculates contours using a regularlyspaced contour grid, then transforms the data to X or Y.

Examples Plot the three-dimensional contour of a function and superimpose a surfaceplot to enhance visualization of the function.

[X,Y] = meshgrid([-2:.25:2]);Z = X.*exp(-X.^2-Y.^2);contour3(X,Y,Z,30)surface(X,Y,Z,’EdgeColor’,[.8 .8 .8],’FaceColor’,’none’)grid offview(-15,25)colormap cool

See Also contour, contourc, meshc, meshgrid, surfc

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

−2

−1

0

1

2

−0.5

0

0.5

279

Page 330: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourc

1contourcPurpose Low-level contour plot computation

Syntax C = contourc(Z)C = contourc(Z,n)C = contourc(Z,v)C = contourc(x,y,Z)C = contourc(x,y,Z,n)C = contourc(x,y,Z,v)

Description contourc calculates the contour matrix C used by contour, contour3, andcontourf. The values in Z determine the heights of the contour lines withrespect to a plane. The contour calculations use a regularly spaced griddetermined by the dimensions of Z.

C = contourc(Z) computes the contour matrix from data in matrix Z, where Zmust be at least a 2-by-2 matrix. The contours are isolines in the units of Z. Thenumber of contour lines and the corresponding values of the contour lines arechosen automatically.

C = contourc(Z,n) computes contours of matrix Z with n contour levels.

C = contourc(Z,v) computes contours of matrix Z with contour lines at thevalues specified in vector v. The length of v determines the number of contourlevels. To compute a single contour of level i, use contourc(Z,[i i]).

C = contourc(x,y,Z), C = contourc(x,y,Z,n), and C = contourc(x,y,Z,v)compute contours of Z using vectors x and y to determine the x- and y-axislimits. x and y must be monotonically increasing.

Remarks C is a two-row matrix specifying all the contour lines. Each contour line definedin matrix C begins with a column that contains the value of the contour(specified by v and used by clabel), and the number of (x,y) vertices in thecontour line. The remaining columns contain the data for the (x,y)pairs.

C = [value1 xdata(1) xdata(2)...value2 xdata(1) xdata(2)...;dim1 ydata(1) ydata(2)...dim2 ydata(1) ydata(2)...]

Specifying irregularly spaced x and y vectors is not the same as contouringirregularly spaced data. If x or y is irregularly spaced, contourc calculates

280

Page 331: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourc

contours using a regularly spaced contour grid, then transforms the data to xor y.

See Also clabel, contour, contour3, contourf

281

Page 332: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourf

1contourfPurpose Filled two-dimensional contour plot

Syntax contourf(Z)contourf(Z,n)contourf(Z,v)contourf(X,Y,Z)contourf(X,Y,Z,n)contourf(X,Y,Z,v)[C,h,CF] = contourf(...)

Description A filled contour plot displays isolines calculated from matrix Z and fills theareas between the isolines using constant colors. The color of the filled areasdepends on the current figure’s colormap.

contourf(Z) draws a contour plot of matrix Z, where Z is interpreted asheights with respect to a plane. Z must be at least a 2-by-2 matrix. The numberof contour lines and the values of the contour lines are chosen automatically.

contourf(Z,n) draws a contour plot of matrix Z with n contour levels.

contourf(Z,v) draws a contour plot of matrix Z with contour levels at thevalues specified in vector v.

contourf(X,Y,Z), contourf(X,Y,Z,n), and contourf(X,Y,Z,v) producecontour plots of Z using X and Y to determine the x- and y-axis limits. When Xand Y are matrices, they must be the same size as Z, in which case they specifya surface as surf does.

[C,h,CF] = contourf(...) returns the contour matrix C as calculated by thefunction contourc and used by clabel, a vector of handles h to patch graphicsobjects, and a contour matrix CF for the filled areas.

Remarks If X or Y is irregularly spaced, contourf calculates contours using a regularlyspaced contour grid, then transforms the data to X or Y.

Examples Create a filled contour plot of the peaks function.

[C,h] = contourf(peaks(20),10);

282

Page 333: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourf

colormap autumn

See Also clabel, contour, contour3, contourc, quiver

2 4 6 8 10 12 14 16 18 20

2

4

6

8

10

12

14

16

18

20

283

Page 334: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourslice

1contourslicePurpose Draw contours in volume slice planes

Syntax contourslice(X,Y,Z,V,Sx,Sy,Sz)contourslice(X,Y,Z,V,Xi,Yi,Zi)contourslice(V,Sx,Sy,Sz), contourslice(V,Xi,Yi,Zi)contourslice(...,n)contourslice(...,cvals)contourslice(...,[cv cv])contourslice(...,'method')h = contourslice(...)

Description contourslice(X,Y,Z,V,Sx,Sy,Sz) draws contours in the x-, y-, and z-axisaligned planes at the points in the vectors Sx, Sy, Sz. The arrays X, Y, and Zdefine the coordinates for the volume V and must be monotonic and 3-D plaid(such as the data produced by meshgrid) The color at each contour isdetermined by the volume V, which must be an m-by-n-by-p volume array.

contourslice(X,Y,Z,V,Xi,Yi,Zi) draws contours through the volume Valong the surface defined by the arrays Xi,Yi,Zi.

contourslice(V,Sx,Sy,Sz) and contourslice(V,Xi,Yi,Zi) (omitting the X,Y, and Z arguments) assumes [X,Y,Z] = meshgrid(1:n,1:m,1:p) where[m,n,p]= size(v).

contourslice(...,n) draws n contour lines per plane, overriding theautomatic value.

contourslice(...,cvals) draws length(cval) contour lines per plane at thevalues specified in vector cvals.

contourslice(...,[cv cv]) computes a single contour per plane at the levelcv.

contourslice(...,'method') specifies the interpolation method to use.method can be: linear, cubic, nearest. nearest is the default except when thecontours are being drawn along the surface defined by Xi, Yi, Zi, in which caselinear is the default (see interp3 for a discussion of these interpolationmethods).

h = contourslice(...) returns a vector of handles to patch objects that areused to implement the contour lines.

284

Page 335: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourslice

Examples This example uses the flow data set to illustrate the use of contoured sliceplanes (type help flow for more information on this data set). Notice that thisexample:

• Specifies a vector of length = 9 for Sx, an empty vector for the Sy, and ascalar value (0) for Sz. This creates nine contour plots along the x directionin the y-z plane, and one in the x-y plane at z = 0.

• Uses linspace to define a ten-element linearly spaced vector of values from-8 to 2 that specifies the number of contour lines to draw at each interval.

• Defines the view and projection type (camva, camproj, campos)

• Sets figure (gcf) and axes (gca) characteristics.

[x y z v] = flow;h = contourslice(x,y,z,v,[1:9],[],[0],linspace(-8,2,10));axis([0,10,-3,3,-3,3]); daspect([1,1,1])camva(24); camproj perspective;campos([-3,-15,5])set(gcf,'Color',[.5,.5,.5],'Renderer','zbuffer')set(gca,'Color','black','XColor','white', ...

'YColor','white','ZColor','white')box on

285

Page 336: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contourslice

See Also isosurface, smooth3, subvolume, reducevolume

12

34

56

78

910

−2

−1

0

1

2

3

−3

−2

−1

0

1

2

3

286

Page 337: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

contrast

1contrastPurpose Grayscale colormap for contrast enhancement

Syntax cmap = contrast(X)cmap = contrast(X,m)

Description The contrast function enhances the contrast of an image. It creates a new graycolormap, cmap, that has an approximately equal intensity distribution. Allthree elements in each row are identical.

cmap = contrast(X) returns a gray colormap that is the same length as thecurrent colormap.

cmap = contrast(X,m) returns an m-by-3 gray colormap.

Examples Add contrast to the clown image defined by X.

load clown;cmap = contrast(X);image(X);colormap(cmap);

See Also brighten, colormap, image

287

Page 338: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

conv

1convPurpose Convolution and polynomial multiplication

Syntax w = conv(u,v)

Description w = conv(u,v) convolves vectors u and v. Algebraically, convolution is thesame operation as multiplying the polynomials whose coefficients are theelements of u and v.

Definition Let m = length(u) and n = length(v). Then w is the vector of length m+n-1whose kth element is

The sum is over all the values of j which lead to legal subscripts for u(j) andv(k+1-j), specifically j = max(1,k+1-n): min(k,m). When m = n, this gives

w(1) = u(1)∗v(1)w(2) = u(1)∗v(2)+u(2)∗v(1)w(3) = u(1)*v(3)+u(2)∗v(2)+u(3)∗v(1)...w(n) = u(1)∗v(n)+u(2)∗v(n-1)+ ... +u(n)∗v(1)...w(2∗n-1) = u(n)∗v(n)

Algorithm The convolution theorem says, roughly, that convolving two sequences is thesame as multiplying their Fourier transforms. In order to make this precise, itis necessary to pad the two vectors with zeros and ignore roundoff error. Thus,if

X = fft([x zeros(1,length(y)-1)]) and Y = fft([y zeros(1,length(x)-1)])

then conv(x,y) = ifft(X.∗Y)

See Also conv2, convn, deconv, filter

convmtx and xcorr in the Signal Processing Toolbox

w k( ) u j( )v k 1 j–+( )j

∑=

288

Page 339: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

conv2

1conv2Purpose Two-dimensional convolution

Syntax C = conv2(A,B)C = conv2(hcol,hrow,A)C = conv2(...,'shape')

Description C = conv2(A,B) computes the two-dimensional convolution of matrices A andB. If one of these matrices describes a two-dimensional FIR filter, the othermatrix is filtered in two dimensions.

The size of C in each dimension is equal to the sum of the correspondingdimensions of the input matrices, minus one. That is, if the size of A is [ma,na]and the size of B is [mb,nb], then the size of C is [ma+mb-1,na+nb-1].

C = conv2(hcol,hrow,A) convolves A separably with hcol in the columndirection and hrow in the row direction. hcol and hrow should both be vectors.

C = conv2(...,'shape') returns a subsection of the two-dimensionalconvolution, as specified by the shape parameter:

Examples In image processing, the Sobel edge finding operation is a two-dimensionalconvolution of an input array with the special matrix

s = [1 2 1; 0 0 0; -1 -2 -1];

These commands extract the horizontal edges from a raised pedestal:

A = zeros(10);A(3:7,3:7) = ones(5);H = conv2(A,s);mesh(H)

These commands display first the vertical edges of A, then both horizontal andvertical edges.

full Returns the full two-dimensional convolution (default).same Returns the central part of the convolution of the same size as A.valid Returns only those parts of the convolution that are computed

without the zero-padded edges. Using this option, C has size[ma-mb+1,na-nb+1] when size(A) > size(B).

289

Page 340: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

conv2

V = conv2(A,s');mesh(V)mesh(sqrt(H.^2+V.^2))

See Also conv, convn, filter2

xcorr2 in the Signal Processing Toolbox

290

Page 341: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

convhull

1convhullPurpose Convex hull

Syntax K = convhull(x,y)K = convhull(x,y,TRI)

Description K = convhull(x,y) returns indices into the x and y vectors of the points on theconvex hull.

K = convhull(x,y,TRI) uses the triangulation (as obtained from delaunay)instead of computing it each time.

Examples xx = -1:.05:1; yy = abs(sqrt(xx));[x,y] = pol2cart(xx,yy);k = convhull(x,y);plot(x(k),y(k),'r-',x,y,'b+')

See Also convhull, delaunay, polyarea, voronoi

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

291

Page 342: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

convhulln

1convhullnPurpose n-D convex hull

Syntax K = convhulln(X)

Description K = convhulln(X) returns the indices K of the points in X that comprise thefacets of the convex hull of X. X is an m-by-n array representing m points in n-Dspace. If the convex hull has p facets then K is p-by-n+1.

Note convhulln is based on qhull [1]. For information about qhull, seehttp://www.geom.umn.edu/software/qhull/. For copyright information, seehttp://www.geom.umn.edu/software/download/COPYING.html.

See Also convhull, delaunayn, voronoin

Reference [1] National Science and Technology Research Center for Computation andVisualization of Geometric Structures (The Geometry Center), University ofMinnesota. 1993.

292

Page 343: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

convn

1convnPurpose N-dimensional convolution

Syntax C = convn(A,B)C = convn(A,B,'shape')

Description C = convn(A,B) computes the N-dimensional convolution of the arrays A andB. The size of the result is size(A)+size(B)-1.

C = convn(A,B,'shape') returns a subsection of the N-dimensionalconvolution, as specified by the shape parameter:

• 'full' returns the full N-dimensional convolution (default).

• 'same' returns the central part of the result that is the same size as A.

• 'valid' returns only those parts of the convolution that can be computedwithout assuming that the array A is zero-padded. The size of the result is

max(size(A)-size(B) + 1, 0).

See Also conv, conv2

293

Page 344: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

copyfile

1copyfilePurpose Copy file

GraphicalInterface

As an alternative to the copyfile function, you can copy files using the CurrentDirectory browser. To open it, select Current Directory from the View menuin the MATLAB desktop.

Syntax copyfile source destcopyfile source dest writablestatus = copyfile('source','dest',...)[status,msg] = copyfile('source','dest',...)

Description copyfile source dest copies the file, source, to directory or file, dest. Thesource and dest arguments may be absolute pathnames or pathnames relativeto the current directory. The pathname to dest must exist, but dest cannot bean existing filename in the current directory.

copyfile source dest writable makes the destination file writablefollowing the file copy.

status = copyfile('source','dest',...) returns a status of 1 if the fileis copied successfully and 0 otherwise.

[status,msg] = copyfile('source','dest',...) returns status and anonempty error message string when an error occurs.

Example To make a copy of a file in the same directory,

copyfile myfun.m myfun2.m

To copy a file to another directory, keeping the same filename,

file_copied = copyfile('myfun.m','../testfun/private')file_copied = 1

See Also delete, mkdir

294

Page 345: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

copyobj

1copyobjPurpose Copy graphics objects and their descendants

Syntax new_handle = copyobj(h,p)

Description copyobj creates copies of graphics objects. The copies are identical to theoriginal objects except the copies have different values for their Parentproperty and a new handle. The new parent must be appropriate for the copiedobject (e.g., you can copy a line object only to another axes object).

new_handle = copyobj(h,p) copies one or more graphics objects identified byh and returns the handle of the new object or a vector of handles to new objects.The new graphics objects are children of the graphics objects specified by p.

Remarks h and p can be scalars or vectors. When both are vectors, they must be the samelength and the output argument, new_handle, is a vector of the same length.In this case, new_handle(i) is a copy of h(i) with its Parent property set top(i).

When h is a scalar and p is a vector, h is copied once to each of the parents in p.Each new_handle(i) is a copy of h with its Parent property set to p(i), andlength(new_handle) equals length(p).

When h is a vector and p is a scalar, each new_handle(i) is a copy of h(i) withits Parent property set to p. The length of new_handle equals length(h).

Graphics objects are arranged as a hierarchy. Here, each graphics object isshown connected below its appropriate parent object.

Uimenu

Line

Axes Uicontrol

Image

Figure

Uicontextmenu

Light SurfacePatch Text

Root

Rectangle

295

Page 346: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

copyobj

Examples Copy a surface to a new axes within a different figure.

h = surf(peaks);colormap hotfigure % Create a new figureaxes % Create an axes object in the figurenew_handle = copyobj(h,gca);colormap hotview(3)grid on

Note that while the surface is copied, the colormap (figure property), view, andgrid (axes properties) are not copies.

See Also findobj, gcf, gca, gco, get, set

Parent property for all graphics objects

296

Page 347: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

corrcoef

1corrcoefPurpose Correlation coefficients

Syntax S = corrcoef(X)S = corrcoef(x,y)

Description S = corrcoef(X) returns a matrix of correlation coefficients calculated froman input matrix whose rows are observations and whose columns are variables.The matrix S = corrcoef(X) is related to the covariance matrix C = cov(X)by

corrcoef(X) is the zeroth lag of the covariance function, that is, the zeroth lagof xcov(x,'coeff') packed into a square array.

S = corrcoef(x,y) where x and y are column vectors is the same ascorrcoef([x y]).

See Also xcorr, xcov in the Signal Processing Toolbox, and:

cov, mean, std

S i j,( ) C i j,( )C i i,( )C j j,( )

---------------------------------------=

297

Page 348: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cos, cosh

1cos, coshPurpose Cosine and hyperbolic cosine

Syntax Y = cos(X)Y = cosh(X)

Description The cos and cosh functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = cos(X) returns the circular cosine for each element of X.

Y = cosh(X) returns the hyperbolic cosine for each element of X.

Examples Graph the cosine function over the domain and the hyperboliccosine function over the domain

x = -pi:0.01:pi; plot(x,cos(x))x = -5:0.01:5; plot(x,cosh(x))

The expression cos(pi/2) is not exactly zero but a value the size of thefloating-point accuracy, eps, because pi is only a floating-point approximationto the exact value of π.

Algorithm

See Also acos, acosh

π– x π,≤ ≤5– x 5.≤ ≤

-3 -2 -1 0 1 2 3 4x

-5 -4 -3 -2 -1 0 1 2 3 4 50

10

20

30

40

50

60

70

80

x

y=co

sh(x

)

x iy+( )cos x( ) y( )coshcos i x( ) y( )sinsin–=

z( )cos eiz e iz–+2

-----------------------=

z( )cosh ez e z–+2

-------------------=

298

Page 349: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cot, coth

1cot, cothPurpose Cotangent and hyperbolic cotangent

Syntax Y = cot(X)Y = coth(X)

Description The cot and coth functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = cot(X) returns the cotangent for each element of X.

Y = coth(X) returns the hyperbolic cotangent for each element of X.

Examples Graph the cotangent and hyperbolic cotangent over the domains and

x1 = -pi+0.01:0.01:-0.01; x2 = 0.01:0.01:pi-0.01;plot(x1,cot(x1),x2,cot(x2))plot(x1,coth(x1),x2,coth(x2))

Algorithm

See Also acot, acoth

π– x 0< <0 x π.< <

-4 -3 -2 -1 0 1 2 3 4-100

-80

-60

-40

-20

0

20

40

60

80

100

x1,x2

y=co

t(x)

-4 -3 -2 -1 0 1 2 3 4-100

-50

0

50

100

150

x1,x2

y=co

th(x

)

z( )cot 1z( )tan

------------------=

z( )coth 1z( )tanh

---------------------=

299

Page 350: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cov

1covPurpose Covariance matrix

Syntax C = cov(X)C = cov(x,y)

Description C = cov(x) where x is a vector returns the variance of the vector elements. Formatrices where each row is an observation and each column a variable, cov(x)is the covariance matrix. diag(cov(x)) is a vector of variances for eachcolumn, and sqrt(diag(cov(x))) is a vector of standard deviations.

C = cov(x,y), where x and y are column vectors of equal length, is equivalentto cov([x y]).

Remarks cov removes the mean from each column before calculating the result.

The covariance function is defined as

where E is the mathematical expectation and µi= Exi.

Examples Consider A = [-1 1 2 ; -2 3 1 ; 4 0 3]. To obtain a vector of variances foreach column of A:

v = diag(cov(A))'v = 10.3333 2.3333 1.0000

Compare vector v with covariance matrix C:

C = 10.3333 -4.1667 3.0000 -4.1667 2.3333 -1.5000 3.0000 -1.5000 1.0000

The diagonal elements C(i,i) represent the variances for the columns of A.The off-diagonal elements C(i,j) represent the covariances of columns i and j.

See Also xcorr, xcov in the Signal Processing Toolbox, and:

corrcoef, mean, std

cov x1,x2( ) E x1 µ1–( ) x2 µ2–( )[ ]=

300

Page 351: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cplxpair

1cplxpairPurpose Sort complex numbers into complex conjugate pairs

Syntax B = cplxpair(A)B = cplxpair(A,tol)B = cplxpair(A,[],dim)B = cplxpair(A,tol,dim)

Description B = cplxpair(A) sorts the elements along different dimensions of a complexarray, grouping together complex conjugate pairs.

The conjugate pairs are ordered by increasing real part. Within a pair, theelement with negative imaginary part comes first. The purely real values arereturned following all the complex pairs. The complex conjugate pairs areforced to be exact complex conjugates. A default tolerance of 100∗eps relativeto abs(A(i)) determines which numbers are real and which elements arepaired complex conjugates.

If A is a vector, cplxpair(A) returns A with complex conjugate pairs groupedtogether.

If A is a matrix, cplxpair(A) returns A with its columns sorted and complexconjugates paired.

If A is a multidimensional array, cplxpair(A) treats the values along the firstnon-singleton dimension as vectors, returning an array of sorted elements.

B = cplxpair(A,tol) overrides the default tolerance.

B = cplxpair(A,[],dim) sorts A along the dimension specified by scalar dim.

B = cplxpair(A,tol,dim) sorts A along the specified dimension and overridesthe default tolerance.

Diagnostics If there are an odd number of complex numbers, or if the complex numberscannot be grouped into complex conjugate pairs within the tolerance, cplxpairgenerates the error message:

Complex numbers can't be paired.

301

Page 352: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cputime

1cputimePurpose Elapsed CPU time

Syntax cputime

Description cputime returns the total CPU time (in seconds) used by MATLAB from thetime it was started. This number can overflow the internal representation andwrap around.

Examples The following code returns the CPU time used to run surf(peaks(40)).

t = cputime; surf(peaks(40)); e = cputime-t

e =0.4667

See Also clock, etime, tic, toc

302

Page 353: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cross

1crossPurpose Vector cross product

Syntax C = cross(A,B)C = cross(A,B,dim)

Description C = cross(A,B) returns the cross product of the vectors A and B. That is,C = A x B. A and B must be 3-element vectors. If A and B are multidimensionalarrays, cross returns the cross product of A and B along the first dimension oflength 3.

C = cross(A,B,dim) where A and B are multidimensional arrays, returns thecross product of A and B in dimension dim . A and B must have the same size,and both size(A,dim) and size(B,dim) must be 3.

Remarks To perform a dot (scalar) product of two vectors of the same size, usec = dot(a,b).

Examples The cross and dot products of two vectors are calculated as shown:

a = [1 2 3]; b = [4 5 6];c = cross(a,b)

c = -3 6 -3

d = dot(a,b)

d = 32

See Also dot

303

Page 354: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

csc, csch

1csc, cschPurpose Cosecant and hyperbolic cosecant

Syntax Y = csc(x)Y = csch(x)

Description The csc and csch functions operate element-wise on arrays. The functions’domains and ranges include complex values. All angles are in radians.

Y = csc(x) returns the cosecant for each element of x.

Y = csch(x) returns the hyperbolic cosecant for each element of x.

Examples Graph the cosecant and hyperbolic cosecant over the domains and.

x1 = -pi+0.01:0.01:-0.01; x2 = 0.01:0.01:pi-0.01;plot(x1,csc(x1),x2,csc(x2))plot(x1,csch(x1),x2,csch(x2))

Algorithm

See Also acsc, acsch

π– x 0< <0 x π< <

-4 -3 -2 -1 0 1 2 3 4-150

-100

-50

0

50

100

150

x1,x2

y=cs

c(x)

-4 -3 -2 -1 0 1 2 3 4-100

-80

-60

-40

-20

0

20

40

60

80

100

x1,x2

y=cs

ch(x

)

z( )csc 1z( )sin

-----------------=

z( )csch 1z( )sinh

--------------------=

304

Page 355: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cumprod

1cumprodPurpose Cumulative product

Syntax B = cumprod(A)B = cumprod(A,dim)

Description B = cumprod(A) returns the cumulative product along different dimensions ofan array.

If A is a vector, cumprod(A) returns a vector containing the cumulative productof the elements of A.

If A is a matrix, cumprod(A) returns a matrix the same size as A containing thecumulative products for each column of A.

If A is a multidimensional array, cumprod(A) works on the first nonsingletondimension.

B = cumprod(A,dim) returns the cumulative product of the elements along thedimension of A specified by scalar dim. For example, cumprod(A,1) incrementsthe first (row) index, thus working along the rows of A.

Examples cumprod(1:5) = [1 2 6 24 120]

A = [1 2 3; 4 5 6];

disp(cumprod(A)) 1 2 3 4 10 18

disp(cumprod(A,2)) 1 2 6 4 20 120

See Also cumsum, prod, sum

305

Page 356: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cumsum

1cumsumPurpose Cumulative sum

Syntax B = cumsum(A)B = cumsum(A,dim)

Description B = cumsum(A) returns the cumulative sum along different dimensions of anarray.

If A is a vector, cumsum(A) returns a vector containing the cumulative sum ofthe elements of A.

If A is a matrix, cumsum(A) returns a matrix the same size as A containing thecumulative sums for each column of A.

If A is a multidimensional array, cumsum(A) works on the first nonsingletondimension.

B = cumsum(A,dim) returns the cumulative sum of the elements along thedimension of A specified by scalar dim. For example, cumsum(A,1) works acrossthe first dimension (the rows).

Examples cumsum(1:5) = [1 3 6 10 15]

A = [1 2 3; 4 5 6];

disp(cumsum(A)) 1 2 3 5 7 9

disp(cumsum(A,2)) 1 3 6 4 9 15

See Also cumprod, prod, sum

306

Page 357: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cumtrapz

1cumtrapzPurpose Cumulative trapezoidal numerical integration

Syntax Z = cumtrapz(Y)Z = cumtrapz(X,Y)Z = cumtrapz(... dim)

Description Z = cumtrapz(Y) computes an approximation of the cumulative integral of Yvia the trapezoidal method with unit spacing. (This is similar to cumsum(Y),except that trapezoidal approximation is used.) To compute the integral withother than unit spacing, multiply Z by the spacing increment.

For vectors, cumtrapz(Y) is the cumulative integral of Y.

For matrices, cumtrapz(Y) is a row vector with the cumulative integral overeach column.

For multidimensional arrays, cumtrapz(Y) works across the first nonsingletondimension.

Z = cumtrapz(X,Y) computes the cumulative integral of Y with respect to Xusing trapezoidal integration. X and Y must be vectors of the same length, or Xmust be a column vector and Y an array.

If X is a column vector and Y an array whose first nonsingleton dimension islength(X), cumtrapz(X,Y) operates across this dimension.

Z = cumtrapz(... dim) integrates across the dimension of Y specified byscalar dim. The length of X must be the same as size(Y,dim).

Example Example: If Y = [0 1 2; 3 4 5]

cumtrapz(Y,1)ans =

0 1.0000 2.0000 1.5000 2.5000 3.5000

and

cumtrapz(Y,2)ans =

0 0.5000 2.0000 3.0000 3.5000 8.0000

307

Page 358: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cumtrapz

See Also cumsum, trapz

308

Page 359: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

curl

1curlPurpose Computes the curl and angular velocity of a vector field

Syntax [curlx,curly,curlz,cav] = curl(X,Y,Z,U,V,W)[curlx,curly,curlz,cav] = curl(U,V,W)[curlz,cav]= curl(X,Y,U,V)[curlz,cav]= curl(U,V)[curlx,curly,curlz] = curl(...), [curlx,curly] = curl(...)cav = curl(...)

Description [curlx,curly,curlz,cav] = curl(X,Y,Z,U,V,W) computes the curl andangular velocity perpendicular to the flow (in radians per time unit) of a 3-Dvector field U, V, W. The arrays X, Y, Z define the coordinates for U, V, W and mustbe monotonic and 3-D plaid (as if produced by meshgrid).

[curlx,curly,curlz,cav] = curl(U,V,W) assumes X, Y, and Z aredetermined by the expression:

[X Y Z] = meshgrid(1:n,1:m,1:p)

where [m,n,p] = size(U).

[curlz,cav]= curl(X,Y,U,V) computes the curl z-component and theangular velocity perpendicular to z (in radians per time unit) of a 2-D vectorfield U, V. The arrays X, Y define the coordinates for U, V and must be monotonicand 2-D plaid (as if produced by meshgrid).

[curlz,cav]= curl(U,V) assumes X and Y are determined by the expression:

[X Y] = meshgrid(1:n,1:m)

where [m,n] = size(U).

[curlx,curly,curlz] = curl(...), curlx,curly] = curl(...) returnsonly the curl.

cav = curl(...) returns only the curl angular velocity.

Examples This example uses colored slice planes to display the curl angular velocity atspecified locations in the vector field.

309

Page 360: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

curl

load windcav = curl(x,y,z,u,v,w);slice(x,y,z,cav,[90 134],[59],[0]);shading interpdaspect([1 1 1]); axis tightcolormap hot(16)camlight

This example views the curl angular velocity in one plane of the volume andplots the velocity vectors (quiver) in the same plane.

load windk = 4;x = x(:,:,k); y = y(:,:,k); u = u(:,:,k); v = v(:,:,k);cav = curl(x,y,u,v);pcolor(x,y,cav); shading interphold on;quiver(x,y,u,v,'y')hold offcolormap copper

310

Page 361: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

curl

See Also streamribbon, divergence

311

Page 362: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

customverctrl

1customverctrlPurpose Allow custom version control system

Syntax customverctrl(filename, arguments)

Description This function is supplied for customers who want to integrate a version controlsystem that is not supported with MATLAB. This function must conform to thestructure of one of the supported version control systems, for example RCS. Seethe files clearcase.m, pvcs.m, rcs.m, and sourcesafe.m in$matlabroot\toolbox\matlab\verctrl as examples.

See Also checkin, checkout, cmopts, undocheckout

312

Page 363: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cylinder

1cylinderPurpose Generate cylinder

Syntax [X,Y,Z] = cylinder[X,Y,Z] = cylinder(r)[X,Y,Z] = cylinder(r,n)cylinder(...)

Description cylinder generates x, y, and z coordinates of a unit cylinder. You can draw thecylindrical object using surf or mesh, or draw it immediately by not providingoutput arguments.

[X,Y,Z] = cylinder returns the x, y, and z coordinates of a cylinder with aradius equal to 1. The cylinder has 20 equally spaced points around itscircumference.

[X,Y,Z] = cylinder(r) returns the x, y, and z coordinates of a cylinder usingr to define a profile curve. cylinder treats each element in r as a radius atequally spaced heights along the unit height of the cylinder. The cylinder has20 equally spaced points around its circumference.

[X,Y,Z] = cylinder(r,n) returns the x, y, and z coordinates of a cylinderbased on the profile curve defined by vector r. The cylinder has n equally spacedpoints around its circumference.

cylinder(...), with no output arguments, plots the cylinder using surf.

Remarks cylinder treats its first argument as a profile curve. The resulting surfacegraphics object is generated by rotating the curve about the x-axis, and thenaligning it with the z-axis.

Examples Create a cylinder with randomly colored faces.

cylinderaxis squareh = findobj('Type','surface');

313

Page 364: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cylinder

set(h,'CData',rand(size(get(h,'CData'))))

Generate a cylinder defined by the profile function 2+sin(t).

t = 0:pi/10:2*pi;[X,Y,Z] = cylinder(2+cos(t));surf(X,Y,Z)axis square

−1

−0.5

0

0.5

1

−1

−0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

314

Page 365: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

cylinder

See Also sphere, surf

−4

−2

0

2

4

−4

−2

0

2

40

0.2

0.4

0.6

0.8

1

315

Page 366: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

daspect

1daspectPurpose Set or query the axes data aspect ratio

Syntax daspectdaspect([aspect_ratio])daspect('mode')daspect('auto')daspect('manual')daspect(axes_handle,...)

Description The data aspect ratio determines the relative scaling of the data units along thex-, y-, and z-axes.

daspect with no arguments returns the data aspect ratio of the current axes.

daspect([aspect_ratio]) sets the data aspect ratio in the current axes to thespecified value. Specify the aspect ratio as three relative values representingthe ratio of the x-, y-, and z-axis scaling (e.g., [1 1 3] means one unit in x isequal in length to one unit in y and three unit in z).

daspect('mode') returns the current value of the data aspect ratio mode,which can be either auto (the default) or manual. See Remarks.

daspect('auto') sets the data aspect ratio mode to auto.

daspect('manual') sets the data aspect ratio mode to manual.

daspect(axes_handle,...) performs the set or query on the axes identified bythe first argument, axes_handle. When you do not specify an axes handle,daspect operates on the current axes.

Remarks daspect sets or queries values of the axes object DataAspectRatio andDataAspectRatioMode properties.

When the data aspect ratio mode is auto, MATLAB adjusts the data aspectratio so that each axis spans the space available in the figure window. If youare displaying a representation of a real-life object, you should set the dataaspect ratio to [1 1 1] to produce the correct proportions.

Setting a value for data aspect ratio or setting the data aspect ratio mode tomanual disables MATLAB’s stretch-to-fill feature (stretching of the axes to fit

319

Page 367: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

daspect

the window). This means setting the data aspect ratio to a value, including itscurrent value,

daspect(daspect)

can cause a change in the way the graphs look. See the Remarks section of theaxes description for more information.

Examples The following surface plot of the function is useful to illustratethe data aspect ratio. First plot the function over the range –2 ≤ x ≤ 2, –2 ≤ y ≤ 2,

[x,y] = meshgrid([-2:.2:2]);z = x.*exp(-x.^2 - y.^2);surf(x,y,z)

Querying the data aspect ratio shows how MATLAB has drawn the surface.

daspectans =

4 4 1

Setting the data aspect ratio to [1 1 1] produces a surface plot with equalscaling along each axis.

z xe x2 y2––( )=

−2−1

01

2

−2

−1

0

1

2−0.5

0

0.5

320

Page 368: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

daspect

daspect([1 1 1])

See Also axis, pbaspect, xlim, ylim, zlim

The axes properties DataAspectRatio, PlotBoxAspectRatio, XLim, YLim, ZLim

The discussion of axes aspect ratio in Visualization Techniques.

−2

−1

0

1

2

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2−0.5

0

0.5

321

Page 369: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

date

1datePurpose Current date string

Syntax str = date

Description str = date returns a string containing the date in dd-mmm-yyyy format.

See Also clock, datenum, now

322

Page 370: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datenum

1datenumPurpose Serial date number

Syntax N = datenum(str)N = datenum(str,P)N = datenum(Y,M,D)N = datenum(Y,M,D,H,MI,S)

Description The datenum function converts date strings and date vectors into serial datenumbers. Date numbers are serial days elapsed from some reference date. Bydefault, the serial day 1 corresponds to 1-Jan-0000.

N = datenum(str) converts the date string str into a serial date number. Datestrings with two-character years, e.g., 12-june-12, are assumed to lie withinthe 100-year period centered about the current year.

NOTE The string str must be in one of the date formats 0, 1, 2, 6, 13, 14, 15,or 16 as defined by datestr.

N = datenum(str,P) uses the specified pivot year as the starting year of the100-year range in which a two-character year resides. The default pivot year isthe current year minus 50 years.

N = datenum(Y,M,D) returns the serial date number for correspondingelements of the Y, M, and D (year, month, day) arrays. Y, M, and D must be arraysof the same size (or any can be a scalar). Values outside the normal range ofeach array are automatically “carried” to the next unit.

N = datenum(Y,M,D,H,MI,S) returns the serial date number forcorresponding elements of the Y, M, D, H, MI, and S (year, month, hour, minute,and second) array values. Y, M, D, H, MI, and S must be arrays of the same size(or any can be a scalar).

323

Page 371: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datenum

Examples Convert a date string to a serial date number.

n = datenum('19-May-1995')

n = 728798

Specifying year, month, and day, convert a date to a serial date number.

n = datenum(1994,12,19)

n = 728647

Convert a date string to a serial date number using the default pivot year

n = datenum('12-june-12')

n = 735032

Convert the same date string to a serial date number using 1900 as the pivotyear.

n = datenum('12-june-12', 1900)

n = 698507

See Also datestr, datevec, now

324

Page 372: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datestr

1datestrPurpose Date string format

Syntax str = datestr(D,dateform)str = datestr(D,dateform,P)

Description str = datestr(D,dateform) converts each element of the array of serial datenumbers (D) to a string. Date strings with two-character years, e.g.,12-june-12, are assumed to lie within the 100-year period centered about thecurrent year.

str = datestr(D,dateform,P) uses the specified pivot year as the startingyear of the 100-year range in which a two-character year resides. The defaultpivot year is the current year minus 50 years.

The optional argument dateform specifies the date format of the result.dateform can be either a number or a string:

dateform (number) dateform (string) Example

0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-200015:45:17

1 'dd-mmm-yyyy' 01-Mar-2000

2 'mm/dd/yy' 03/01/00

3 'mmm' Mar

4 'm' M

5 'mm' 03

6 'mm/dd' 03/01

7 'dd' 01

8 'ddd' Wed

9 'd' W

10 'yyyy' 2000

11 'yy' 00

325

Page 373: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datestr

NOTE dateform numbers 0, 1, 2, 6, 13, 14, 15, 16, and 23 produce a stringsuitable for input to datenum or datevec. Other date string formats will notwork with these functions.

12 'mmmyy' Mar00

13 'HH:MM:SS' 15:45:17

14 'HH:MM:SS PM' 3:45:17 PM

15 'HH:MM' 15:45

16 'HH:MM PM' 3:45 PM

17 'QQ-YY' Q1-01

18 'QQ' Q1

19 'dd/mm' 01/03

20 'dd/mm/yy' 01/03/00

21 'mmm.dd.yyyy HH:MM:SS' Mar.01,200015:45:17

22 'mmm.dd.yyyy' Mar.01.2000

23 'mm/dd/yyyy' 03/01/2000

24 'dd/mm/yyyy' 01/03/2000

25 'yy/mm/dd' 00/03/01

26 'yyyy/mm/dd' 2000/03/01

27 'QQ-YYYY’ Q1-2001

28 'mmmyyyy' Mar2000

dateform (number) dateform (string) Example

326

Page 374: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datestr

Time formats like 'h:m:s', 'h:m:s.s', 'h:m pm', ... may also be part of theinput array D. If you do not specify dateform, the date string format defaults to

See Also date, datenum, datevec

1 if D contains data information only (01-Mar-1995)

16 if D contains time information only (03:45 PM)

0 if D contains both date and time information (01-Mar-1995 03:45)

327

Page 375: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datetick

1datetickPurpose Label tick lines using dates

Syntax datetick(tickaxis)datetick(tickaxis,dateform)

Description datetick(tickaxis) labels the tick lines of an axis using dates, replacing thedefault numeric labels. tickaxis is the string 'x', 'y', or 'z'. The default is'x'. datetick selects a label format based on the minimum and maximumlimits of the specified axis.

datetick(tickaxis,dateform) formats the labels according to the integerdateform (see table). To produce correct results, the data for the specified axismust be serial date numbers (as produced by datenum).

dateform (number) dateform (string) Example

0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-200015:45:17

1 'dd-mmm-yyyy' 01-Mar-2000

2 'mm/dd/yy' 03/01/00

3 'mmm' Mar

4 'm' M

5 'mm' 03

6 'mm/dd' 03/01

7 'dd' 01

8 'ddd' Wed

9 'd' W

10 'yyyy' 2000

11 'yy' 00

12 'mmmyy' Mar00

13 'HH:MM:SS' 15:45:17

328

Page 376: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datetick

Remarks datetick calls datestr to convert date numbers to date strings.

To change the tick spacing and locations, set the appropriate axes property(i.e., XTick, YTick, or ZTick) before calling datetick.

Example Consider graphing population data based on the 1990 U.S. census:

t = (1900:10:1990)'; % Time intervalp = [75.995 91.972 105.711 123.203 131.669 ...

150.697 179.323 203.212 226.505 249.633]'; % Populationplot(datenum(t,1,1),p) % Convert years to date numbers and plotgrid on

14 'HH:MM:SS PM' 3:45:17 PM

15 'HH:MM' 15:45

16 'HH:MM PM' 3:45 PM

17 'QQ-YY' Q1–01

18 'QQ' Q1

19 'dd/mm' 01/03

20 'dd/mm/yy' 01/03/00

21 'mmm.dd.yyyy HH:MM:SS' Mar.01,200015:45:17

22 'mmm.dd.yyyy' Mar.01.2000

23 'mm/dd/yyyy' 03/01/2000

24 'dd/mm/yyyy' 01/03/2000

25 'yy/mm/dd' 00/03/01

26 'yyyy/mm/dd' 2000/03/01

27 'QQ-YYYY’ Q1-2001

28 'mmmyyyy' Mar2000

dateform (number) dateform (string) Example

329

Page 377: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datetick

datetick('x',11) % Replace x-axis ticks with 2-digit year labels

See Also The axes properties XTick, YTick, and ZTick.

datenum, datestr

00 20 40 60 80 0060

80

100

120

140

160

180

200

220

240

260

330

Page 378: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datevec

1datevecPurpose Date components

C = datevec(A)C = datevec(A,P)[Y,M,D,H,MI,S] = datevec(A)

Description C = datevec(A) splits its input into an n-by-6 array with each row containingthe vector [Y,M,D,H,MI,S]. The first five date vector elements are integers.Input A can either consist of strings of the sort produced by the datestrfunction, or scalars of the sort produced by the datenum and now functions. Datestrings with two-character years, e.g., 12-june-12, are assumed to lie withinthe 100-year period centered about the current year.

C = datevec(A,P) uses the specified pivot year as the starting year of the100-year range in which a two-character year resides. The default pivot year isthe current year minus 50 years..

[Y,M,D,H,MI,S] = datevec(A) returns the components of the date vector asindividual variables.

When creating your own date vector, you need not make the componentsintegers. Any components that lie outside their conventional ranges affect thenext higher component (so that, for instance, the anomalous June 31 becomesJuly 1). A zeroth month, with zero days, is allowed.

Examples An example of using a string as input:

datevec('12/24/1984')

ans =1984 12 24 0 0 0

An example of using a serial date number as input:

t = datenum('12/24/1984')

t = 725000

datevec(t)

331

Page 379: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

datevec

ans =1984 12 24 0 0 0

See Also clock, datenum, datestr, now

332

Page 380: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbclear

1dbclearPurpose Clear breakpoints

Syntax dbclear alldbclear all in mfiledbclear in mfiledbclear in mfile at linenodbclear in mfile at subfundbclear if errordbclear if warningdbclear if naninfdbclear if infnan

Description dbclear all removes all breakpoints in all M-files, as well as pauses set forerror, warning, and naninf/infnan using dbstop.

dbclear all in mfile removes breakpoints in mfile.

dbclear in mfile removes the breakpoint set at the first executable line inmfile.

dbclear in mfile at lineno removes the breakpoint set at the line numberlineno in mfile.

dbclear in mfile at subfun removes the breakpoint set at the subfunctionsubfun in mfile.

dbclear if error removes the pause set using dbstop if error.

dbclear if warning removes the pause set using dbstop if warning.

dbclear if naninf removes the pause set using dbstop if naninf.

dbclear if infnan removes the pause set using dbstop if infnan.

Remarks The at, in, and if keywords, familiar to users of the UNIX debugger dbx, areoptional.

See Also dbcont, dbdown, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype, dbup,partialpath

333

Page 381: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbcont

1dbcontPurpose Resume execution

Syntax dbcont

Description dbcont resumes execution of an M-file from a breakpoint. Execution continuesuntil either another breakpoint is encountered, an error occurs, or MATLABreturns to the base workspace prompt.

See Also dbclear, dbdown, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype, dbup

334

Page 382: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbdown

1dbdownPurpose Change local workspace context

Syntax dbdown

Description dbdown changes the current workspace context to the workspace of the calledM-file when a breakpoint is encountered. You must have issued the dbupfunction at least once before you issue this function. dbdown is the opposite ofdbup.

Multiple dbdown functions change the workspace context to each successivelyexecuted M-file on the stack until the current workspace context is the currentbreakpoint. It is not necessary, however, to move back to the currentbreakpoint to continue execution or to step to the next line.

See Also dbclear, dbcont, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype, dbup

335

Page 383: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dblquad

1dblquadPurpose Numerically evaluate double integral

Syntax q = dblquad(fun,xmin,xmax,ymin,ymax)q = dblquad(fun,xmin,xmax,ymin,ymax,tol)q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method)q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method,p1,p2,...)

Description q = dblquad(fun,xmin,xmax,ymin,ymax) calls the quad function to evaluatethe double integral fun(x,y) over the rectangle xmin <= x <= xmax, ymin <=y <= ymax. fun(x,y) must accept a vector x and a scalar y and return a vectorof values of the integrand.

q = dblquad(fun,xmin,xmax,ymin,ymax,tol) uses a tolerance tol instead ofthe default, which is 1.0e-6.

q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method) uses the specifiedquadrature function instead of the default quad. Valid values for method are@quadl or a function handle of a user-defined quadrature method that has thesame calling sequence as quad and quadl.

dblquad(fun,xmin,xmax,ymin,ymax,tol,method,p1,p2,...) passes theadditional parameters p1,p2,... to fun(x,y,p1,p2,...). Use [] as aplaceholder if you do not specify tol or method.dblquad(fun,xmin,xmax,ymin,ymax,[],[],p1,p2,...) is the same asdblquad(fun,xmin,xmax,ymin,ymax,1.e-6,@quad,p1,p2,...)

Example fun can be an inline object

Q = dblquad(inline('y*sin(x)+x*cos(y)'), pi, 2*pi, 0, pi)

or a function handle

Q = dblquad(@integrnd, pi, 2*pi, 0, pi)

where integrnd.m is an M-file.

function z = integrnd(x, y)z = y*sin(x)+x*cos(y);

336

Page 384: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dblquad

The integrnd function integrates y*sin(x)+x*cos(y) over the squarepi <= x <= 2*pi, 0 <= y <= pi. Note that the integrand can be evaluatedwith a vector x and a scalar y .

Nonsquare regions can be handled by setting the integrand to zero outside ofthe region. For example, the volume of a hemisphere is

dblquad(inline('sqrt(max(1-(x.^2+y.^2),0))'),-1,1,-1,1)

or

dblquad(inline('sqrt(1-(x.^2+y.^2)).*(x.^2+y.^2<=1)'),-1,1,-1,1)

See Also inline, quad, quadl, @ (function handle)

337

Page 385: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbmex

1dbmexPurpose Enable MEX-file debugging

Syntax dbmex ondbmex offdbmex stopdbmex print

Description dbmex on enables MEX-file debugging for UNIX platforms. To use this option,first start MATLAB from within a debugger by typing: matlab -Ddebugger,where debugger is the name of the debugger.

dbmex off disables MEX-file debugging.

dbmex stop returns to the debugger prompt.

dbmex print displays MEX-file debugging information.

See Also dbclear, dbcont, dbdown, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype,dbup

338

Page 386: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbquit

1dbquitPurpose Quit debug mode

Syntax dbquit

Description dbquit immediately terminates the debugger and returns control to the baseworkspace prompt. The M-file being processed is not completed and no resultsare returned.

All breakpoints remain in effect.

See Also dbclear, dbcont, dbdown, dbstack, dbstatus, dbstep, dbstop, dbtype, dbup

339

Page 387: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbstack

1dbstackPurpose Display function call stack

Syntax dbstack[ST,I] = dbstack

Description dbstack displays the line numbers and M-file names of the function calls thatled to the current breakpoint, listed in the order in which they were executed.In other words, the line number of the most recently executed function call (atwhich the current breakpoint occurred) is listed first, followed by its callingfunction, which is followed by its calling function, and so on, until the topmostM-file function is reached.

[ST,I] = dbstack returns the stack trace information in an m-by-1 structureST with the fields:

The current workspace index is returned in I.

Examples dbstack

In /usr/local/matlab/toolbox/matlab/cond.m at line 13In test1.m at line 2In test.m at line 3

See Also dbclear, dbcont, dbdown, dbquit, dbstatus, dbstep, dbstop, dbtype, dbup

name Function name

line Function line number

340

Page 388: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbstatus

1dbstatus

Purpose List all breakpoints

Syntax dbstatusdbstatus functions = dbstatus(...)

Description dbstatus lists all breakpoints in effect including error, warning, and naninf.

dbstatus function displays a list of the line numbers for which breakpointsare set in the specified M-file.

s = dbstatus(...) returns the breakpoint information in an m-by-1structure with the fields:

Use dbstatus class/function or dbstatus private/function ordbstatus class/private/function to determine the status for methods,private functions, or private methods (for a class named class). In all of theseforms you can further qualify the function name with a subfunction name as indbstatus function/subfunction.

See Also dbclear, dbcont, dbdown, dbquit, dbstack, dbstep, dbstop, dbtype, dbup

name Function name

line Function line number

cond Condition string (error, warning, ornaninf)

341

Page 389: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbstep

1dbstepPurpose Execute one or more lines from a breakpoint

Syntax dbstepdbstep nlinesdbstep in

Description This function allows you to debug an M-file by following its execution from thecurrent breakpoint. At a breakpoint, the dbstep function steps throughexecution of the current M-file one line at a time or at the rate specified bynlines.

dbstep, by itself, executes the next executable line of the current M-file. dbstepsteps over the current line, skipping any breakpoints set in functions called bythat line.

dbstep nlines executes the specified number of executable lines.

dbstep in steps to the next executable line. If that line contains a call toanother M-file, execution resumes with the first executable line of the calledfile. If there is no call to an M-file on that line, dbstep in is the same as dbstep.

See Also dbclear, dbcont, dbdown, dbquit, dbstack, dbstatus, dbstop, dbtype, dbup

342

Page 390: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbstop

1dbstopPurpose Set breakpoints in an M-file function

Syntax dbstop in mfiledbstop in mfile at linenodbstop in mfile at subfundbstop if errordbstop if warningdbstop if naninfdbstop if infnan

Description dbstop in mfile temporarily stops execution of mfile when you run it, at thefirst executable line, putting MATLAB in debug mode. If you have graphicaldebugging enabled, the MATLAB Debugger opens with a breakpoint at thefirst executable line of mfile. You can then use the debugging utilities, reviewthe workspace, or issue any valid MATLAB function. Use dbcont or dbstep toresume execution of mfile. Use dbquit to exit from the Debugger.

dbstop in mfile at lineno temporarily stops execution of mfile when yourun it, just prior to execution of the line whose number is lineno, puttingMATLAB in debug mode. If you have graphical debugging enabled, theMATLAB Debugger opens mfile with a breakpoint at line lineno. If that lineis not executable, execution stops and the breakpoint is set at the nextexecutable line following lineno. When execution stops, you can use thedebugging utilities, review the workspace, or issue any valid MATLABfunction. Use dbcont or dbstep to resume execution of mfile. Use dbquit toexit from the Debugger.

dbstop in mfile at subfun temporarily stops execution of mfile when yourun it, just prior to execution of the subfunction subfun, putting MATLAB indebug mode. If you have graphical debugging enabled, the MATLAB Debuggeropens mfile with a breakpoint at the subfunction specified by subfun. You canthen use the debugging utilities, review the workspace, or issue any validMATLAB function. Use dbcont or dbstep to resume execution of mfile. Usedbquit to exit from the Debugger.

dbstop if error stops execution when any M-file you subsequently runproduces a run-time error, putting MATLAB in debug mode, paused at the line

343

Page 391: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbstop

that generated the error. You cannot resume execution after an error. Usedbquit to exit from the Debugger.

dbstop if warning stops execution when any M-file you subsequently runproduces a run-time warning, putting MATLAB in debug mode, paused at theline that generated the warning. Use dbcont or dbstep to resume execution.

dbstop if naninf stops execution when any M-file you subsequently runencounters an infinite value (Inf), putting MATLAB in debug mode, paused atthe line where Inf was encountered. Use dbcont or dbstep to resumeexecution. Use dbquit to exit from the Debugger.

dbstop if infnan stops execution when any M-file you subsequently runencounters a value that is not a number (NaN), putting MATLAB in debugmode, paused at the line where NaN was encountered. Use dbcont or dbstep toresume execution. Use dbquit to exit from the Debugger.

Remarks The at, in, and if keywords, familiar to users of the UNIX debugger dbx, areoptional.

Examples The file buggy, used in these examples, consists of three lines.

function z = buggy(x)n = length(x);z = (1:n)./x;

Example 1 – Stop at First Executable LineThe statements

dbstop in buggybuggy(2:5)

stop execution at the first executable line in buggy

n = length(x);

The function

dbstep

advances to the next line, at which point, you can examine the value of n.

344

Page 392: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbstop

Example 2 – Stop if ErrorBecause buggy only works on vectors, it produces an error if the input x is a fullmatrix. The statements

dbstop if errorbuggy(magic(3))

produce

??? Error using ==> ./Matrix dimensions must agree.Error in ==> c:\buggy.mOn line 3 ==> z = (1:n)./x;K»

and put MATLAB in debug mode.

Example 3 – Stop if InfIn buggy, if any of the elements of the input x are zero, a division by zero occurs.The statements

dbstop if naninfbuggy(0:2)

produce

Warning: Divide by zero.> In c:\buggy.m at line 3K»

and put MATLAB in debug mode.

See Also dbclear, dbcont, dbdown, dbquit, dbstack, dbstatus, dbstep, dbtype, dbup,partialpath

345

Page 393: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbtype

1dbtypePurpose List M-file with line numbers

Syntax dbtype functiondbtype function start:end

Description dbtype function displays the contents of the specified M-file function withline numbers preceding each line. function must be the name of an M-filefunction or a MATLABPATH relative partial pathname.

dbtype function start:end displays the portion of the file specified by arange of line numbers.

See Also dbclear, dbcont, dbdown, dbquit, dbstack, dbstatus, dbstep, dbstop, dbup,partialpath

346

Page 394: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dbup

1dbupPurpose Change local workspace context

Syntax dbup

Description This function allows you to examine the calling M-file by using any otherMATLAB function. In this way, you determine what led to the arguments beingpassed to the called function.

dbup changes the current workspace context (at a breakpoint) to the workspaceof the calling M-file.

Multiple dbup functions change the workspace context to each previous callingM-file on the stack until the base workspace context is reached. (It is notnecessary, however, to move back to the current breakpoint to continueexecution or to step to the next line.)

See Also dbclear, dbcont, dbdown, dbquit, dbstack, dbstatus, dbstep, dbstop, dbtype

347

Page 395: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddeadv

1ddeadvPurpose Set up advisory link

Syntax rc = ddeadv(channel,'item','callback')rc = ddeadv(channel,'item','callback','upmtx')rc = ddeadv(channel,'item','callback','upmtx',format)rc = ddeadv(channel,'item','callback','upmtx',format,timeout)

Description ddeadv sets up an advisory link between MATLAB and a server application.When the data identified by the item argument changes, the string specified bythe callback argument is passed to the eval function and evaluated. If theadvisory link is a hot link, DDE modifies upmtx, the update matrix, to reflectthe data in item.

If you omit optional arguments that are not at the end of the argument list, youmust substitute the empty matrix for the missing argument(s).

If successful, ddeadv returns 1 in variable, rc. Otherwise it returns 0.

Arguments channel Conversation channel from ddeinit.

item String specifying the DDE item name for the advisory link.Changing the data identified by item at the server triggers theadvisory link.

callback String specifying the callback that is evaluated on updatenotification. Changing the data identified by item at the servercauses callback to get passed to the eval function to beevaluated.

upmtx(optional)

String specifying the name of a matrix that holds data sentwith an update notification. If upmtx is included, changingitem at the server causes upmtx to be updated with the reviseddata. Specifying upmtx creates a hot link. Omitting upmtx orspecifying it as an empty string creates a warm link. If upmtxexists in the workspace, its contents are overwritten. If upmtxdoes not exist, it is created.

348

Page 396: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddeadv

Examples Set up a hot link between a range of cells in Excel (Row 1, Column 1 throughRow 5, Column 5) and the matrix x. If successful, display the matrix:

rc = ddeadv(channel, 'r1c1:r5c5', 'disp(x)', 'x');

Communication with Excel must have been established previously with addeinit command.

See Also ddeexec, ddeinit, ddepoke, ddereq, ddeterm, ddeunadv

format(optional)

Two-element array specifying the format of the data to be senton update. The first element specifies the Windows clipboardformat to use for the data. The only currently supported formatis cf_text, which corresponds to a value of 1. The secondelement specifies the type of the resultant matrix. Valid typesare numeric (the default, which corresponds to a value of 0)and string (which corresponds to a value of 1). The defaultformat array is [1 0].

timeout(optional)

Scalar specifying the time-out limit for this operation. timeoutis specified in milliseconds. (1000 milliseconds = 1 second). Ifadvisory link is not established within timeout milliseconds,the function fails. The default value of timeout is threeseconds.

349

Page 397: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddeexec

1ddeexecPurpose Send string for execution

Syntax rc = ddeexec(channel,'command')rc = ddeexec(channel,'command','item')rc = ddeexec(channel,'command','item',timeout)

Description ddeexec sends a string for execution to another application via an establishedDDE conversation. Specify the string as the command argument.

If you omit optional arguments that are not at the end of the argument list, youmust substitute the empty matrix for the missing argument(s).

If successful, ddeexec returns 1 in variable, rc. Otherwise it returns 0.

Arguments

Examples Given the channel assigned to a conversation, send a command to Excel:

rc = ddeexec(channel,'[formula.goto("r1c1")]')

Communication with Excel must have been established previously with addeinit command.

See Also ddeadv, ddeinit, ddepoke, ddereq, ddeterm, ddeunadv

channel Conversation channel from ddeinit.

command String specifying the command to be executed.

item(optional)

String specifying the DDE item name for execution. Thisargument is not used for many applications. If your applicationrequires this argument, it provides additional information forcommand. Consult your server documentation for moreinformation.

timeout(optional)

Scalar specifying the time-out limit for this operation. timeoutis specified in milliseconds. (1000 milliseconds = 1 second). Thedefault value of timeout is three seconds.

350

Page 398: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddeinit

1ddeinitPurpose Initiate DDE conversation

Syntax channel = ddeinit('service','topic')

Description channel = ddeinit('service','topic') returns a channel handle assignedto the conversation, which is used with other MATLAB DDE functions.'service' is a string specifying the service or application name for theconversation. 'topic' is a string specifying the topic for the conversation.

Examples To initiate a conversation with Excel for the spreadsheet 'stocks.xls':

channel = ddeinit('excel','stocks.xls')

channel =0.00

See Also ddeadv, ddeexec, ddepoke, ddereq, ddeterm, ddeunadv

351

Page 399: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddepoke

352

1ddepokePurpose Send data to application

Syntax rc = ddepoke(channel,'item',data)rc = ddepoke(channel,'item',data,format)rc = ddepoke(channel,'item',data,format,timeout)

Description ddepoke sends data to an application via an established DDE conversation.ddepoke formats the data matrix as follows before sending it to the serverapplication:

• String matrices are converted, element by element, to characters and theresulting character buffer is sent.

• Numeric matrices are sent as tab-delimited columns and carriage-return,line-feed delimited rows of numbers. Only the real part of nonsparsematrices are sent.

If you omit optional arguments that are not at the end of the argument list, youmust substitute the empty matrix for the missing argument(s).

If successful, ddepoke returns 1 in variable, rc. Otherwise it returns 0.

Arguments

Examples Assume that a conversation channel with Excel has previously beenestablished with ddeinit. To send a 5-by-5 identity matrix to Excel, placing thedata in Row 1, Column 1 through Row 5, Column 5:

channel Conversation channel from ddeinit.

item String specifying the DDE item for the data sent. Item is theserver data entity that is to contain the data sent in the dataargument.

data Matrix containing the data to send.

format(optional)

Scalar specifying the format of the data requested. The valueindicates the Windows clipboard format to use for the datatransfer. The only format currently supported is cf_text,which corresponds to a value of 1.

timeout(optional)

Scalar specifying the time-out limit for this operation. timeoutis specified in milliseconds. (1000 milliseconds = 1 second). Thedefault value of timeout is three seconds.

Page 400: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddepoke

rc = ddepoke(channel, 'r1c1:r5c5', eye(5));

See Also ddeadv, ddeexec, ddeinit, ddereq, ddeterm, ddeunadv

353

Page 401: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddereq

1ddereqPurpose Request data from application

Syntax data = ddereq(channel,'item')data = ddereq(channel,'item',format)data = ddereq(channel,'item',format,timeout)

Description ddereq requests data from a server application via an established DDEconversation. ddereq returns a matrix containing the requested data or anempty matrix if the function is unsuccessful.

If you omit optional arguments that are not at the end of the argument list, youmust substitute the empty matrix for the missing argument(s).

If successful, ddereq returns a matrix containing the requested data invariable, data. Otherwise, it returns an empty matrix.

Arguments

Examples Assume that we have an Excel spreadsheet stocks.xls. This spreadsheetcontains the prices of three stocks in row 3 (columns 1 through 3) and thenumber of shares of these stocks in rows 6 through 8 (column 2). Initiateconversation with Excel with the command:

channel = ddeinit('excel','stocks.xls')

channel Conversation channel from ddeinit.

item String specifying the server application's DDE item name forthe data requested.

format(optional)

Two-element array specifying the format of the data requested.The first element specifies the Windows clipboard format touse. The only currently supported format is cf_text, whichcorresponds to a value of 1. The second element specifies thetype of the resultant matrix. Valid types are numeric (thedefault, which corresponds to 0) and string (whichcorresponds to a value of 1). The default format array is [1 0].

timeout(optional)

Scalar specifying the time-out limit for this operation. timeoutis specified in milliseconds. (1000 milliseconds = 1 second). Thedefault value of timeout is three seconds.

354

Page 402: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddereq

DDE functions require the rxcy reference style for Excel worksheets. In Excelterminology the prices are in r3c1:r3c3 and the shares in r6c2:r8c2.

To request the prices from Excel:

prices = ddereq(channel,'r3c1:r3c3')

prices =42.50 15.00 78.88

To request the number of shares of each stock:

shares = ddereq(channel, 'r6c2:r8c2')

shares =100.00500.00300.00

See Also ddeadv, ddeexec, ddeinit, ddepoke, ddeterm, ddeunadv

355

Page 403: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddeterm

356

1ddetermPurpose Terminate DDE conversation

Syntax rc = ddeterm(channel)

Description rc = ddeterm(channel) accepts a channel handle returned by a previous callto ddeinit that established the DDE conversation. ddeterm terminates thisconversation. rc is a return code where 0 indicates failure and 1 indicatessuccess.

Examples To close a conversation channel previously opened with ddeinit:

rc = ddeterm(channel)

rc =

1.00

See Also ddeadv, ddeexec, ddeinit, ddepoke, ddereq, ddeunadv

Page 404: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ddeunadv

1ddeunadvPurpose Release advisory link

Syntax rc = ddeunadv(channel,'item')rc = ddeunadv(channel,'item',format)rc = ddeunadv(channel,'item',format,timeout)

Description ddeunadv releases the advisory link between MATLAB and the serverapplication established by an earlier ddeadv call. The channel, item, andformat must be the same as those specified in the call to ddeadv that initiatedthe link. If you include the timeout argument but accept the default format,you must specify format as an empty matrix.

If successful, ddeunadv returns 1 in variable, rc. Otherwise it returns 0.

Arguments

Example To release an advisory link established previously with ddeadv:

rc = ddeunadv(channel, 'r1c1:r5c5')rc =

1.00

See Also ddeadv, ddeexec, ddeinit, ddepoke, ddereq, ddeterm

channel Conversation channel from ddeinit.

item String specifying the DDE item name for the advisory link.Changing the data identified by item at the server triggers theadvisory link.

format(optional)

Two-element array. This must be the same as the formatargument for the corresponding ddeadv call.

timeout(optional)

Scalar specifying the time-out limit for this operation. timeoutis specified in milliseconds. (1000 milliseconds = 1 second). Thedefault value of timeout is three seconds.

357

Page 405: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

deal

1dealPurpose Deal inputs to outputs

Syntax [Y1,Y2,Y3,...] = deal(X)[Y1,Y2,Y3,...] = deal(X1,X2,X3,...)

Description [Y1,Y2,Y3,...] = deal(X) copies the single input to all the requestedoutputs. It is the same as Y1 = X, Y2 = X, Y3 = X, ...

[Y1,Y2,Y3,...] = deal(X1,X2,X3,...) is the same as Y1 = X1; Y2 = X2;Y3 = X3; ...

Remarks deal is most useful when used with cell arrays and structures via commaseparated list expansion. Here are some useful constructions:

[S.field] = deal(X) sets all the fields with the name field in the structurearray S to the value X. If S doesn't exist, use [S(1:m).field] = deal(X).

[X{:}] = deal(A.field) copies the values of the field with name field tothe cell array X. If X doesn't exist, use [X{1:m}] = deal(A.field).

[Y1,Y2,Y3,...] = deal(X{:}) copies the contents of the cell array X to theseparate variables Y1,Y2,Y3,...

[Y1,Y2,Y3,...] = deal(S.field) copies the contents of the fields with thename field to separate variables Y1,Y2,Y3,...

Examples Use deal to copy the contents of a 4-element cell array into four separateoutput variables.

C = {rand(3) ones(3,1) eye(3) zeros(3,1)};[a,b,c,d] = deal(C{:})

a =

0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214

b =

358

Page 406: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

deal

1 1 1

c =

1 0 0 0 1 0 0 0 1

d =

0 0 0

Use deal to obtain the contents of all the name fields in a structure array:

A.name = 'Pat'; A.number = 176554;A(2).name = 'Tony'; A(2).number = 901325;[name1,name2] = deal(A(:).name)

name1 =

Pat

name2 =

Tony

359

Page 407: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

deblank

1deblankPurpose Strip trailing blanks from the end of a string

Syntax str = deblank(str)c = deblank(c)

Description str = deblank(str) removes the trailing blanks from the end of a characterstring str.

c = deblank(c), when c is a cell array of strings, applies deblank to eachelement of c.

Thedeblank function is useful for cleaning up the rows of a character array.

Examples A{1,1} = 'MATLAB ';A{1,2} = 'SIMULINK ';A{2,1} = 'Toolboxes ';A{2,2} = 'The MathWorks ';

A =

'MATLAB ' 'SIMULINK ' 'Toolboxes ' 'The MathWorks '

deblank(A)

ans =

'MATLAB' 'SIMULINK' 'Toolboxes' 'The MathWorks'

360

Page 408: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dec2base

1dec2basePurpose Decimal number to base conversion

Syntax str = dec2base(d,base)str = dec2base(d,base,n)

Description str = dec2base(d,base) converts the nonnegative integer d to the specifiedbase.d must be a nonnegative integer smaller than 2^52, and base must be aninteger between 2 and 36. The returned argument str is a string.

str = dec2base(d,base,n) produces a representation with at least n digits.

Examples The expression dec2base(23,2) converts 2310 to base 2, returning the string'10111'.

See Also base2dec

361

Page 409: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dec2bin

1dec2binPurpose Decimal to binary number conversion

Syntax str = dec2bin(d)str = dec2bin(d,n)

Description str = dec2bin(d) returns the binary representation of d as a string. d mustbe a nonnegative integer smaller than .

str = dec2bin(d,n) produces a binary representation with at least n bits.

Examplesans = 10111

See Also bin2dec, dec2hex

252

362

Page 410: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dec2hex

1dec2hexPurpose Decimal to hexadecimal number conversion

Syntax str = dec2hex(d)str = dec2hex(d,n)

Description str = dec2hex(d) converts the decimal integer d to its hexadecimalrepresentation stored in a MATLAB string. d must be a nonnegative integersmaller than .

str = dec2hex(d,n) produces a hexadecimal representation with at least ndigits.

Examples To convert decimal 1023 to hexadecimal,

dec2hex(1023)

ans = 3FF

See Also dec2bin, format, hex2dec, hex2num

252

363

Page 411: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

deconv

1deconvPurpose Deconvolution and polynomial division

Syntax [q,r] = deconv(v,u)

Description [q,r] = deconv(v,u) deconvolves vector u out of vector v, using long division.The quotient is returned in vector q and the remainder in vector r such that v= conv(u,q)+r.

If u and v are vectors of polynomial coefficients, convolving them is equivalentto multiplying the two polynomials, and deconvolution is polynomial division.The result of dividing v by u is quotient q and remainder r.

Examples If

u = [1 2 3 4]v = [10 20 30]

the convolution is

c = conv(u,v)c =

10 40 100 160 170 120

Use deconvolution to recover u:

[q,r] = deconv(c,u)q =

10 20 30r =

0 0 0 0 0 0

This gives a quotient equal to v and a zero remainder.

Algorithm deconv uses the filter primitive.

See Also conv, residue

364

Page 412: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

default4

1default4Purpose MATLAB Version 4.0 figure and axes defaults

Syntax default4default4(h)

Description default4 sets figure and axes defaults to match MATLAB Version 4.0 defaults.

default4(h) only affects the figure with handle h.

See Also colordef

365

Page 413: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

del2

1del2Purpose Discrete Laplacian

Syntax L = del2(U)L = del2(U,h)L = del2(U,hx,hy)L = del2(U,hx,hy,hz,...)

Definition If the matrix U is regarded as a function u(x,y) evaluated at the point on asquare grid, then 4∗del2(U) is a finite difference approximation of Laplace’sdifferential operator applied to u, that is:

where:

in the interior. On the edges, the same formula is applied to a cubicextrapolation.

For functions of more variables u(x,y,z,...), del2(U) is an approximation,

where N is the number of variables in u.

l ∇2u4

----------- 14--- d2u

dx2---------- d2u

d y2----------+

==

lij14--- ui 1 j,+ ui 1 j,– ui j 1+, ui j 1–,+ + +( ) ui j,–=

l ∇2u2N----------- 1

2N--------- d2u

dx2---------- d2u

d y2---------- d2u

dz2---------- …+ + +

==

366

Page 414: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

del2

Description L = del2(U) where U is a rectangular array is a discrete approximation of

The matrix L is the same size as U with each element equal to the differencebetween an element of U and the average of its four neighbors.

L = del2(U) when U is an multidimensional array, returns an approximationof

where N is ndims(u).

L = del2(U,h) where H is a scalar uses H as the spacing between points in eachdirection (h=1 by default).

L = del2(U,hx,hy) when U is a rectangular array, uses the spacing specifiedby hx and hy. If hx is a scalar, it gives the spacing between points in thex-direction. If hx is a vector, it must be of length size(u,2) and specifies thex-coordinates of the points. Similarly, if hy is a scalar, it gives the spacingbetween points in the y-direction. If hy is a vector, it must be of lengthsize(u,1) and specifies the y-coordinates of the points.

L = del2(U,hx,hy,hz,...) where U is multidimensional uses the spacinggiven by hx, hy, hz, ...

l ∇2u4

----------- 14--- d2u

dx2---------- d2u

d y2----------+

==

∇2u2N-----------

367

Page 415: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

del2

Examples The function

has

For this function, 4∗del2(U) is also 4.

[x,y] = meshgrid(–4:4,–3:3);U = x.∗x+y.∗yU =

25 18 13 10 9 10 13 18 2520 13 8 5 4 5 8 13 2017 10 5 2 1 2 5 10 1716 9 4 1 0 1 4 9 1617 10 5 2 1 2 5 10 1720 13 8 5 4 5 8 13 2025 18 13 10 9 10 13 18 25

V = 4∗del2(U)V =

4 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 4

See Also diff, gradient

u x y,( ) x2 y2+=

u∇2 4=

368

Page 416: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunay

1delaunayPurpose Delaunay triangulation

Syntax TRI = delaunay(x,y)TRI = delaunay(x,y,'sorted')

Definition Given a set of data points, the Delaunay triangulation is a set of linesconnecting each point to its natural neighbors. The Delaunay triangulation isrelated to the Voronoi diagram— the circle circumscribed about a Delaunaytriangle has its center at the vertex of a Voronoi polygon.

Description TRI = delaunay(x,y) returns a set of triangles such that no data points arecontained in any triangle's circumscribed circle. Each row of the m-by-3 matrixTRI defines one such triangle and contains indices into the vectors x and y.

To avoid the degeneracy of collinear data, delaunay adds some random fuzz tothe data. The default fuzz standard deviation 4*sqrt(eps) has been chosen tomaintain about seven digits of accuracy in the data.

tri = delaunay(x,y,fuzz) uses the specified value for the fuzz standarddeviation. It is possible that no value of fuzz produces a correct triangulation.In this unlikely situation, you need to preprocess your data to avoid collinearor nearly collinear data.

TRI = delaunay(x,y,'sorted') assumes that the points x and y are sortedfirst by y and then by x and that duplicate points have already been eliminated.

Remarks The Delaunay triangulation is used with: griddata (to interpolate scattereddata), convhull, voronoi (to compute the voronoi diagram), and is useful byitself to create a triangular grid for scattered data points.

Delaunay triangleVoronoi polygon

x

369

Page 417: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunay

The functions dsearch and tsearch search the triangulation to find nearestneighbor points or enclosing triangles, respectively.

Note delaunay is based on qhull [1]. For information about qhull, seehttp://www.geom.umn.edu/software/qhull/. For copyright information, seehttp://www.geom.umn.edu/software/download/COPYING.html.

Examples This code plots the Delaunay triangulation for 10 randomly generated points.

rand('state',0);x = rand(1,10);y = rand(1,10);TRI = delaunay(x,y);subplot(1,2,1),...trimesh(TRI,x,y,zeros(size(x))); view(2),...axis([0 1 0 1]); hold on;plot(x,y,'o');set(gca,'box','on');

Compare the Voronoi diagram of the same points:

[vx, vy] = voronoi(x,y,TRI);subplot(1,2,2),...plot(x,y,'r+',vx,vy,'b–'),...

370

Page 418: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunay

axis([0 1 0 1])

See Also convhull, delaunay3, delaunayn, dsearch, griddata, trimesh, trisurf,tsearch, voronoi, voronoin

References [1] National Science and Technology Research Center for Computation andVisualization of Geometric Structures (The Geometry Center), University ofMinnesota. 1993.

0 0.5 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.5 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

371

Page 419: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunay3

1delaunay3Purpose 3-D Delaunay tesselation

Syntax TES = delaunay3(x,y,z)

Description TES = delaunay3(x,y,z) returns an array TES, each row of which contains theindices of the points in (x,y,z) that make up a tetrahedron in the tesselationof (x,y,z). TES is a numtes-by-4 array where numtes is the number of facets inthe tesselation. x, y, and z are vectors of equal length.

delaunay3 is based on qhull [1]. For information about qhull, see http://www.geom.umn.edu/software/qhull/. For copyright information, see http://www.geom.umn.edu/software/download/COPYING.html.

Example d = [-1 1];[x,y,z] = meshgrid(d,d,d); % A cubex = [x(:);0];y = [y(:);0];z = [z(:);0];% [x,y,z] are corners of a cube plus the center.Tes = delaunay3(x,y,z)

Tes =

9 7 3 5 1 9 3 5 1 2 9 5 4 9 7 3 4 9 7 8 4 1 9 3 4 1 2 9 6 2 9 5 6 9 7 5 6 9 7 8 6 4 9 8 6 4 2 9

See Also delaunay, delaunayn

372

Page 420: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunay3

Reference [2] National Science and Technology Research Center for Computation andVisualization of Geometric Structures (The Geometry Center), University ofMinnesota. 1993.

373

Page 421: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunayn

1delaunaynPurpose n-D Delaunay tessellation

Syntax T = delaunayn(X)

Description T = delaunayn(X) computes a set of simplices such that no data points of X arecontained in any circumspheres of the simplices. The set of simplices forms theDelaunay tessellation. X is an m-by-n array representing m points in n-D space.T is a numt-by-(n+1) array where each row contains the indices into X of thevertices of the corresponding simplex.

Note delaunayn is based on qhull [1]. For information about qhull, seehttp://www.geom.umn.edu/software/qhull/. For copyright information, seehttp://www.geom.umn.edu/software/download/COPYING.html.

Example d = [-1 1];[x,y,z] = meshgrid(d,d,d); % A cubex = [x(:);0];y = [y(:);0];z = [z(:);0];% [x,y,z] are corners of a cube plus the center.X = [x(:) y(:) z(:)];Tes = delaunayn(X)

Tes =

9 7 3 5 1 9 3 5 1 2 9 5 4 9 7 3 4 9 7 8 4 1 9 3 4 1 2 9 6 2 9 5 6 9 7 5 6 9 7 8 6 4 9 8 6 4 2 9

374

Page 422: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delaunayn

See Also convhulln, delaunayn, delaunay3, voronoin

Reference [1] National Science and Technology Research Center for Computation andVisualization of Geometric Structures (The Geometry Center), University ofMinnesota. 1993.

375

Page 423: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delete

1deletePurpose Delete files or graphics objects

GraphicalInterface

As an alternative to the delete function, you can delete files using the CurrentDirectory browser. To open it, select Current Directory from the View menuin the MATLAB desktop.

Syntax delete filenamedelete(h)delete('filename')

Description delete filename deletes the named file from the disk. The filename mayinclude an absolute pathname or a pathname relative to the current directory.The filename may also include wildcards, (*).

delete(h) deletes the graphics object with handle h. The function deletes theobject without requesting verification even if the object is a window.

delete('filename') is the function form of delete. Use this form when thefilename is stored in a string.

Examples To delete all files with a .mat extension in the ../mytests/ directory,

delete('../mytests/*.mat')

To delete a directory, use !rmdir rather than delete.

!rmdir mydirectory

See Also dir, type

376

Page 424: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

delete (serial)

1delete (serial)Purpose Remove a serial port object from memory

Syntax delete(obj)

Arguments

Description delete(obj) removes obj from memory.

Remarks When you delete obj, it becomes an invalid object. Since you cannot connect aninvalid serial port object to the device, you should remove it from the workspacewith the clear command. If multiple references to obj exist in the workspace,then deleting one reference invalidates the remaining references.

If you attempt to delete obj while it is connected to the device, then an error isreturned. A connected serial port object has a Status property value of open.You can disconnect obj from the device with the fclose function.

If you use the help command to display help for delete, then you need tosupply the pathname shown below.

help serial/delete

Example This example creates the serial port object s, connects s to the device, writesand reads text data, disconnects s from the device, removes s from memoryusing delete, and then removes s from the workspace using clear.

s = serial('COM1');fopen(s)fprintf(s,'*IDN?')idn = fscanf(s);fclose(s)delete(s)clear s

See Also Functionsclear, fclose, isvalid

PropertiesStatus

obj A serial port object or an array of serial port objects.

377

Page 425: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

depdir

1depdirPurpose List the dependent directories of an M-file or P-file

Syntax list = depdir('file_name');[list,prob_files,prob_sym,prob_strings] = depdir('file_name');[...] = depdir('file_name1','file_name2',...);

Description The depdir function lists the directories of all of the functions that a specifiedM-file or P-file needs to operate. This function is useful for finding all of thedirectories that need to be included with a runtime application and fordetermining the runtime path.

list = depdir('file_name') creates a cell array of strings containing thedirectories of all the M-files and P-files that file_name.m or file_name.p uses.This includes the second-level files that are called directly by file_name, aswell as the third-level files that are called by the second-level files, and so on.

[list,prob_files,prob_sym,prob_strings] = depdir('file_name')creates three additional cell arrays containing information about any problemswith the depdir search. prob_files contains filenames that depdir wasunable to parse. prob_sym contains symbols that depdir was unable to find.prob_strings contains callback strings that depdir was unable to parse.

[...] = depdir('file_name1','file_name2',...) performs the sameoperation for multiple files. The dependent directories of all files are listedtogether in the output cell arrays.

Example list = depdir('mesh')

See Also depfun

378

Page 426: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

depfun

1depfunPurpose List the dependent functions of an M-file or P-file

Syntax list = depfun('file_name');[list,builtins,classes] = depfun('file_name');[list,builtins,classes,prob_files,prob_sym,eval_strings,...

called_from,java_classes] = depfun('file_name');[...] = depfun('file_name1','file_name2',...);[...] = depfun('fig_file_name');[...] = depfun(...,'-toponly');

Description The depfun function lists all of the functions and scripts, as well as built-infunctions, that a specified M-file needs to operate. This is useful for finding allof the M-files that you need to compile for a MATLAB runtime application.

list = depfun('file_name') creates a cell array of strings containing thepaths of all the files that file_name.m uses. This includes the second-level filesthat are called directly by file_name.m, as well as the third-level files that arecalled by the second-level files, and so on.

Note If depfun reports that “These files could not be parsed:” or if theprob_files output below is nonempty, then the rest of the output of depfunmight be incomplete. You should correct the problematic files and invokedepfun again.

[list,builtins,classes] = depfun('file_name') creates three cell arrayscontaining information about dependent functions. list contains the paths ofall the files that file_name and its subordinates use. builtins contains thebuilt-in functions that file_name and its subordinates use. classes containsthe MATLAB classes that file_name and its subordinates use.

[list,builtins,classes,prob_files,prob_sym,eval_strings,...called_from,java_classes] = depfun('file_name') creates additional cellarrays or structure arrays containing information about any problems with thedepfun search and about where the functions in list are invoked. Theadditional outputs are:

379

Page 427: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

depfun

• prob_files, which indicates which files depfun was unable to parse, find, oraccess. Parsing problems can arise from MATLAB syntax errors. prob_filesis a structure array whose fields are:

- name, which gives the names of the files

- listindex, which tells where the files appeared in list

- errmsg, which describes the problems

• prob_sym, which indicates which symbols depfun was unable to resolve asfunctions or variables. It is a structure array whose fields are:

- fcn_id, which tells where the files appeared in list

- name, which gives the names of the problematic symbols

• eval_strings, which indicates usage of these evaluation functions: eval,evalc, evalin, feval. When preparing a runtime application, you shouldexamine this output to determine whether an evaluation function invokes afunction that does not appear in list. The output eval_strings is astructure array whose fields are:

- fcn_name, which give the names of the files that use evaluation functions

- lineno, which gives the line numbers in the files where the evaluationfunctions appear

• called_from, a cell array of the same length as list. This cell array isarranged so thatlist(called_from{i})

returns all functions in file_name that invoke the function list{i}.

• java_classes, a cell array of Java class names that file_name and itssubordinates use

[...] = depfun('file_name1','file_name2',...) performs the sameoperation for multiple files. The dependent functions of all files are listedtogether in the output arrays.

[...] = depfun('fig_file_name') looks for dependent functions among thecallback strings of the GUI elements that are defined in the .fig or .mat filenamed fig_file_name.

[...] = depfun(...,'-toponly') differs from the other syntaxes of depfunin that it examines only the files listed explicitly as input arguments. It does

380

Page 428: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

depfun

not examine the files on which they depend. In this syntax, the flag '-toponly'must be the last input argument.

Notes

1 If depfun does not find a file called hginfo.mat on the path, then it createsone. This file contains information about Handle Graphics callbacks.

2 If your application uses toolbar items from MATLAB’s default figurewindow, then you must include 'FigureToolBar.fig' in your input todepfun.

3 If your application uses menu items from MATLAB’s default figure window,then you must include 'FigureMenuBar.fig' in your input to depfun.

4 Because many built-in Handle Graphics functions invoke newplot, the listproduced by depfun always includes the functions on which newplot isdependent:- 'matlabroot\toolbox\matlab\graphics\newplot.m'- 'matlabroot\toolbox\matlab\graphics\closereq.m'- 'matlabroot\toolbox\matlab\graphics\gcf.m'- 'matlabroot\toolbox\matlab\graphics\gca.m'- 'matlabroot\toolbox\matlab\graphics\private\clo.m'- 'matlabroot\toolbox\matlab\general\@char\delete.m'- 'matlabroot\toolbox\matlab\lang\nargchk.m'- 'matlabroot\toolbox\matlab\uitools\allchild.m'- 'matlabroot\toolbox\matlab\ops\setdiff.m'- 'matlabroot\toolbox\matlab\ops\@cell\setdiff.m'- 'matlabroot\toolbox\matlab\iofun\filesep.m'- 'matlabroot\toolbox\matlab\ops\unique.m'- 'matlabroot\toolbox\matlab\elmat\repmat.m'- 'matlabroot\toolbox\matlab\datafun\sortrows.m'- 'matlabroot\toolbox\matlab\strfun\deblank.m'- 'matlabroot\toolbox\matlab\ops\@cell\unique.m'- 'matlabroot\toolbox\matlab\strfun\@cell\deblank.m'- 'matlabroot\toolbox\matlab\datafun\@cell\sort.m'- 'matlabroot\toolbox\matlab\strfun\cellstr.m'- 'matlabroot\toolbox\matlab\datatypes\iscell.m'- 'matlabroot\toolbox\matlab\strfun\iscellstr.m'- 'matlabroot\toolbox\matlab\datatypes\cellfun.dll'

381

Page 429: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

depfun

Examples list = depfun('mesh'); % Files mesh.m depends onlist = depfun('mesh','-toponly') % Files mesh.m depends ondirectly[list,builtins,classes] = depfun('gca');

See Also depdir

382

Page 430: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

det

1detPurpose Matrix determinant

Syntax d = det(X)

Description d = det(X) returns the determinant of the square matrix X. If X contains onlyinteger entries, the result d is also an integer.

Remarks Using det(X) == 0 as a test for matrix singularity is appropriate only formatrices of modest order with small integer entries. Testing singularity usingabs(det(X)) <= tolerance is not recommended as it is difficult to choose thecorrect tolerance. The function cond(X) can check for singular and nearlysingular matrices.

Algorithm The determinant is computed from the triangular factors obtained by Gaussianelimination

[L,U] = lu(A)s = det(L) % This is always +1 or –1det(A) = s∗prod(diag(U))

Examples The statement A = [1 2 3; 4 5 6; 7 8 9]

produces

A =1 2 34 5 67 8 9

This happens to be a singular matrix, so d = det(A) produces d = 0.Changing A(3,3) with A(3,3) = 0 turns A into a nonsingular matrix. Nowd = det(A) produces d = 27.

See Also cond, condest, inv, lu, rref

The arithmetic operators \, /

383

Page 431: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

detrend

1detrendPurpose Remove linear trends.

Syntax y = detrend(x)y = detrend(x,'constant')y = detrend(x,'linear',bp)

Description detrend removes the mean value or linear trend from a vector or matrix,usually for FFT processing.

y = detrend(x) removes the best straight-line fit from vector x and returns itin y. If x is a matrix, detrend removes the trend from each column.

y = detrend(x,'constant') removes the mean value from vector x or, if x isa matrix, from each column of the matrix.

y = detrend(x,'linear',bp) removes a continuous, piecewise linear trendfrom vector x or, if x is a matrix, from each column of the matrix. Vector bpcontains the indices of the breakpoints between adjacent linear segments. Thebreakpoint between two segments is defined as the data point that the twosegments share.

detrend(x,'linear'), with no breakpoint vector specified, is the same asdetrend(x).

Example sig = [0 1 -2 1 0 1 -2 1 0]; % signal with no linear trendtrend = [0 1 2 3 4 3 2 1 0]; % two-segment linear trendx = sig+trend; % signal with added trendy = detrend(x,'linear',5) % breakpoint at 5th element

y =

breakpoints

384

Page 432: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

detrend

-0.0000 1.0000 -2.0000 1.0000 0.0000 1.0000 -2.0000 1.0000 -0.0000

Note that the breakpoint is specified to be the fifth element, which is the datapoint shared by the two segments.

Algorithm detrend computes the least-squares fit of a straight line (or composite line forpiecewise linear trends) to the data and subtracts the resulting function fromthe data. To obtain the equation of the straight-line fit, use polyfit.

See Also polyfit

385

Page 433: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

diag

1diagPurpose Diagonal matrices and diagonals of a matrix

Syntax X = diag(v,k)X = diag(v)v = diag(X,k)v = diag(X)

Description X = diag(v,k) when v is a vector of n components, returns a square matrix Xof order n+abs(k), with the elements of v on the kth diagonal. k = 0 representsthe main diagonal, k > 0 above the main diagonal, and k < 0 below the maindiagonal.

X = diag(v) puts v on the main diagonal, same as above with k = 0.

v = diag(X,k) for matrix X, returns a column vector v formed from theelements of the kth diagonal of X.

v = diag(X) returns the main diagonal of X, same as above with k = 0.

Examples diag(diag(X)) is a diagonal matrix.

sum(diag(X)) is the trace of X.

The statement

diag(–m:m)+diag(ones(2∗m,1),1)+diag(ones(2∗m,1),–1)

produces a tridiagonal matrix of order 2∗m+1.

See Also spdiags, tril, triu

k > 0

k < 0

k = 0

386

Page 434: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dialog

1dialogPurpose Create and display dialog box

Syntax h = dialog('PropertyName',PropertyValue,...)

Description h = dialog('PropertyName',PropertyValue,...) returns a handle to adialog box. This function creates a figure graphics object and sets the figureproperties recommended for dialog boxes. You can specify any valid figureproperty value.

See Also errordlg, figure, helpdlg, inputdlg, pagedlg, printdlg, questdlg, uiwait,uiresume, warndlg

387

Page 435: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

diary

1diaryPurpose Save session to a file

Syntax diarydiary('filename')diary offdiary ondiary filename

Description The diary function creates a log of keyboard input and the resulting output(except it does not include graphics). The output of diary is an ASCII file,suitable for printing or for inclusion in reports and other documents. If you donot specify filename, MATLAB creates a file named diary in the currentdirectory.

diary toggles diary mode on and off. To see the status of diary, typeget(0,'Diary'). MATLAB returns either on or off indicating the diarystatus.

diary('filename') writes a copy of all subsequent keyboard input and theresulting output (except it does not include graphics) to the named file. If thefile already exists, output is appended to the end of the file. You cannot use afilename called off or on. To see the name of the diary file, useget(0,'DiaryFile'). Type get(0,'DiaryName'), and MATLAB returnsfilename.

diary off suspends the diary.

diary on resumes diary mode using the current filename, or the defaultfilename diary if none has yet been specified.

diary filename is the unquoted form of the syntax.

See Also Command History window

388

Page 436: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

diff

1diffPurpose Differences and approximate derivatives

Syntax Y = diff(X)Y = diff(X,n)Y = diff(X,n,dim)

Description Y = diff(X) calculates differences between adjacent elements of X.

If X is a vector, then diff(X) returns a vector, one element shorter than X, ofdifferences between adjacent elements:

[X(2)–X(1) X(3)–X(2) ... X(n)–X(n–1)]

If X is a matrix, then diff(X) returns a matrix of row differences:

[X(2:m,:)–X(1:m–1,:)]

In general, diff(X) returns the differences calculated along the firstnon-singleton (size(X,dim) > 1) dimension of X.

Y = diff(X,n) applies diff recursively n times, resulting in the nthdifference. Thus, diff(X,2) is the same as diff(diff(X)).

Y = diff(X,n,dim) is the nth difference function calculated along thedimension specified by scalar dim. If order n equals or exceeds the length ofdimension dim, diff returns an empty array.

Remarks Since each iteration of diff reduces the length of X along dimension dim, it ispossible to specify an order n sufficiently high to reduce dim to a singleton(size(X,dim) = 1) dimension. When this happens, diff continues calculatingalong the next nonsingleton dimension.

Examples The quantity diff(y)./diff(x) is an approximate derivative.

x = [1 2 3 4 5];y = diff(x)y = 1 1 1 1

z = diff(x,2)z =

389

Page 437: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

diff

0 0 0

Given,

A = rand(1,3,2,4);

diff(A) is the first-order difference along dimension 2.

diff(A,3,4) is the third-order difference along dimension 4.

See Also gradient, prod, sum

390

Page 438: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dir

1dirPurpose Display a directory listing

GraphicalInterface

As an alternative to the dir function, use the Current Directory browser. Toopen it, select Current Directory from the View menu in the MATLABdesktop.

Syntax dirdir namefiles = dir('name')

Description dir lists the files in the current working directory.

dir name lists the specified files. The name argument can be a pathname,filename, or can include both. You can use absolute and relative pathnamesand wildcards.

files = dir('directory') returns the list of files in the specified directory(or the current directory, if dirname is not specified) to an m-by-1 structure withthe fields:

Examples To view the MAT files in your current working directory,

dir *java*.matjava_array.mat javafrmobj.mat testjava.mat

To view the M-files in the MATLAB audio directory, type

dir(fullfile(matlabroot,'toolbox/matlab/audio/*.m'))

Contents.m lin2mu.m sound.m wavread.mauread.m mu2lin.m soundsc.m wavrecord.mauwrite.m saxis.m wavplay.m wavwrite.m

To return the list of files to the variable audio_files, type

name Filename

date Modification date

bytes Number of bytes allocated to the file

isdir 1 if name is a directory; 0 if not

391

Page 439: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dir

audio_files=dir(fullfile(matlabroot,'toolbox/matlab/audio/*.m'))

MATLAB returns the information in a structure array.

audio_files =12x1 struct array with fields: name date bytes isdir

Index into the structure to access a particular item. For example,

audio_files(3).nameans =auwrite.m

See Also cd, delete, filebrowser, ls, type, what

392

Page 440: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

disp

1dispPurpose Display text or array

Syntax disp(X)

Description disp(X) displays an array, without printing the array name. If X contains atext string, the string is displayed.

Another way to display an array on the screen is to type its name, but thisprints a leading “X =,” which is not always desirable.

Examples One use of disp in an M-file is to display a matrix with column labels:

disp(' Corn Oats Hay')disp(rand(5,3))

which results in

Corn Oats Hay 0.2113 0.8474 0.2749 0.0820 0.4524 0.8807 0.7599 0.8075 0.6538 0.0087 0.4832 0.4899 0.8096 0.6135 0.7741

See Also format, int2str, num2str, rats, sprintf

393

Page 441: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

disp (serial)

1disp (serial)Purpose Display serial port object summary information

Syntax objdisp(obj)

Arguments

Description obj or disp(obj) displays summary information for obj.

Remarks In addition to the syntax shown above, you can display summary informationfor obj by excluding the semicolon when:

• Creating a serial port object

• Configuring property values using the dot notation

Use the display summary to quickly view the communication settings,communication state information, and information associated with read andwrite operations.

Example The following commands display summary information for the serial portobject s.

s = serial('COM1')s.BaudRate = 300

s

obj A serial port object or an array of serial port objects.

394

Page 442: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

divergence

1divergencePurpose Computes the divergence of a vector field

Syntax div = divergence(X,Y,Z,U,V,W)div = divergence(U,V,W)div = divergence(X,Y,U,V)div = divergence(U,V)

Description div = divergence(X,Y,Z,U,V,W) computes the divergence of a 3-D vectorfield U, V, W. The arrays X, Y, Z define the coordinates for U, V, W and must bemonotonic and 3-D plaid (as if produced by meshgrid).

div = divergence(U,V,W) assumes X, Y, and Z are determined by theexpression:

[X Y Z] = meshgrid(1:n,1:m,1:p)

where [m,n,p] = size(U).

div = divergence(X,Y,U,V) computes the divergence of a 2-D vector field U,V. The arrays X, Y define the coordinates for U, V and must be monotonic and 2-Dplaid (as if produced by meshgrid).

div = divergence(U,V) assumes X and Y are determined by the expression:

[X Y] = meshgrid(1:n,1:m)

where [m,n] = size(U).

Examples This example displays the divergence of vector volume data as slice planesusing color to indicate divergence.

load winddiv = divergence(x,y,z,u,v,w);slice(x,y,z,div,[90 134],[59],[0]);shading interpdaspect([1 1 1])camlight

395

Page 443: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

divergence

See Also streamtube, curl, isosurface

396

Page 444: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dlmread

1dlmreadPurpose Read an ASCII delimited file into a matrix

GraphicalInterface

As an alternative to dlmread, use the Import Wizard. To activate the ImportWizard, select Import data from the File menu.

Syntax M = dlmread(filename,delimiter)M = dlmread(filename,delimiter,R,C)M = dlmread(filename,delimiter,range)

Description M = dlmread(filename,delimiter) reads numeric data from the ASCIIdelimited file filename, using the delimiter delimiter. A comma (,) is thedefault delimiter. Use '\t' to specify a tab delimiter.

M = dlmread(filename,delimiter,R,C) reads numeric data from the ASCIIdelimited file filename, using the delimiter delimiter. R and C specify the rowand column where the upper-left corner of the data lies in the file. R and C arezero based so that R=0, C=0 specifies the first value in the file, which is theupper left corner.

M = dlmread(filename,delimiter,range) reads the range specified byrange = [R1 C1 R2 C2] where (R1,C1) is the upper-left corner of the data tobe read and (R2,C2) is the lower-right corner. range can also be specified usingspreadsheet notation as in range = 'A1..B7'.

Remarks dlmread fills empty delimited fields with zero. Data files having lines that endwith a non-space delimiter, such as a semi-colon, produce a result that has anadditional last column of zeros.

See Also dlmwrite, textread, wk1read, wk1write

397

Page 445: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dlmwrite

1dlmwritePurpose Write a matrix to an ASCII delimited file

Syntax dlmwrite(filename,M,delimiter)dlmwrite(filename,M,delimiter,R,C)

Description dlmwrite(filename,M,delimiter) writes matrix M into an ASCII-format file,using delimiter to separate matrix elements. The data is written to the upperleft-most cell of the spreadsheet filename. A comma (,) is the default delimiter.Use '\t' to produce tab-delimited files.

dlmwrite(filename,M,delimiter,R,C) writes matrix A into an ASCII-formatfile, using delimiter to separate matrix elements. The data is written to thespreadsheet filename, starting at spreadsheet cell R and C, where R is the rowoffset and C is the column offset. R and C are zero based so that R=0, C=0specifies the first value in the file, which is the upper left corner.

Remarks The resulting file is readable by spreadsheet programs.

See Also dlmread, wk1read, wk1write

398

Page 446: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dmperm

1dmpermPurpose Dulmage-Mendelsohn decomposition

Syntax p = dmperm(A)[p,q,r] = dmperm(A)[p,q,r,s] = dmperm(A)

Description If A is a reducible matrix, the linear system Ax = b can be solved by permutingA to a block upper triangular form, with irreducible diagonal blocks, and thenperforming block backsubstitution. Only the diagonal blocks of the permutedmatrix need to be factored, saving fill and arithmetic in the blocks above thediagonal.

p = dmperm(A) returns a row permutation p so that if A has full column rank,A(p,:) is square with nonzero diagonal. This is also called a maximummatching.

[p,q,r] = dmperm(A) where A is a square matrix, finds a row permutation pand a column permutation q so that A(p,q) is in block upper triangular form.The third output argument r is an integer vector describing the boundaries ofthe blocks: The kth block of A(p,q) has indices r(k):r(k+1)–1.

[p,q,r,s] = dmperm(A), where A is not square, finds permutations p and qand index vectors r and s so that A(p,q) is block upper triangular. The blockshave indices (r(i):r(i+1)–1, s(i):s(i+1)–1).

In graph theoretic terms, the diagonal blocks correspond to strong Hallcomponents of the adjacency graph of A.

399

Page 447: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

doc

1docPurpose Display online documentation in the MATLAB Help browser

GraphicalInterface

As an alternative to the doc function, use the Help browser Search tab. Set theSearch type to Function Name, type the function name, and click Go.

Syntax docdoc functiondoc toolbox/doc toolbox/function

Description doc opens the Help browser, if it is not already running.

doc function displays the reference page for the MATLAB function functionin the Help browser. If function is overloaded, doc displays the reference pagefor the first function on the search path and lists the overloaded functions inthe MATLAB Command Window. If a reference page for the function does notexist, doc displays M-file help in the Help browser.

doc toolbox/ displays the Roadmap page, a summary of the most pertinentdocumentation for toolbox, in the Help browser.

doc toolbox/function displays the reference page for function that belongsto the specified toolbox, in the Help browser.

See Also help, helpbrowser, lookfor, type, web

400

Page 448: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

docopt

1docopt

Purpose Display location of help file directory for UNIX platforms

Syntax docopt[doccmd,options,docpath] = docopt

Description docopt displays the location of the online help files directory (onlinedocumentation location) for UNIX platforms if the web function is used with the-browser option. It is also used for UNIX platforms that do not support JavaGUIs – see the R12 Release Notes for more information about these platforms.You specify where the online help directory will be located when you installMATLAB. It can be on a disk or CD-ROM drive in your local system. If yourelocate your online help file directory, edit the docopt.m file, changing thelocation in it. (For the PC and for UNIX platforms that support Java GUIs,select File -> Preferences -> Help to view or change the documentationlocation.)

[doccmd,options,docpath] = docopt displays three strings: doccmd,options, and docpath.

Remarks To globally replace the online help file directory location, update $matlabroot/toolbox/local/docopt.m.

To override the global setting, copy $matlabroot/toolbox/local/docopt.m to$HOME/matlab/docopt.m and make changes there. For the changes to takeeffect in the current MATLAB session, $HOME/matlab must be on yourMATLAB path.

See Also doc, help, helpbrowser, helpdesk, lookfor, type

doccmd The function that doc uses to display MATLAB documentation.The default is netscape.

options Additional configuration options for use with doccmd.

docpath The path to the MATLAB online help files. If docpath is empty,the doc function assumes the help files are in the defaultlocation.

401

Page 449: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dos

1dos

Purpose Execute a DOS command and return the result

Syntax dos commandstatus = dos('command')[status,result] = dos('command')[status,result] = dos('command','-echo')

Description dos command calls upon the shell to execute the given command for Windowssystems.

status = dos('command') returns completion status to the status variable.

[status,result] = dos('command') in addition to completion status, returnsthe result of the command to the result variable.

[status,result] = dos('command','-echo') forces the output to theCommand Window, even though it is also being assigned into a variable.

Both console (DOS) programs and Windows programs may be executed, but thesyntax causes different results based on the type of programs. Consoleprograms have stdout and their output is returned to the result variable. Theyare always run in an iconified DOS or Command Prompt Window except asnoted below. Console programs never execute in the background. Also,MATLAB will always wait for the stdout pipe to close before continuingexecution. Windows programs may be executed in the background as they haveno stdout.

The ampersand, &, character has special meaning. For console programs thiscauses the console to open. Omitting this character will cause consoleprograms to run iconically. For Windows programs, appending this characterwill cause the application to run in the background. MATLAB will continueprocessing.

Examples The following example performs a directory listing, returning a zero (success)in s and the string containing the listing in w.

[s, w] = dos('dir');

To open the DOS 5.0 editor in a DOS window

402

Page 450: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dos

dos('edit &')

To open the notepad editor and return control immediately to MATLAB

dos('notepad file.m &')

The next example returns a zero in s because the shell executed correctly, butit returns an error message in w because foo is not a valid shell command.

[s, w] = dos('foo')

This example echoes the results of the dir command to the Command Windowas it executes as well as assigning the results to w.

[s, w] = dos('dir', '-echo');

See Also Special Characters

403

Page 451: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dot

1dotPurpose Vector dot product

Syntax C = dot(A,B)C = dot(A,B,dim)

Description C = dot(A,B) returns the scalar product of the vectors A and B. A and B mustbe vectors of the same length. When A and B are both column vectors, dot(A,B)is the same as A'*B.

For multidimensional arrays A and B, dot returns the scalar product along thefirst non-singleton dimension of A and B. A and B must have the same size.

C = dot(A,B,dim) returns the scalar product of A and B in the dimension dim.

Examples The dot product of two vectors is calculated as shown:

a = [1 2 3]; b = [4 5 6];c = dot(a,b)

c = 32

See Also cross

404

Page 452: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

double

1doublePurpose Convert to double-precision

Syntax double(X)

Description double(x) returns the double-precision value for X. If X is already adouble-precision array, double has no effect.

Remarks double is called for the expressions in for, if, and while loops if the expressionisn't already double-precision. double should be overloaded for any object whenit makes sense to convert it to a double-precision value.

405

Page 453: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dragrect

1dragrectPurpose Drag rectangles with mouse

Syntax [finalrect] = dragrect(initialrect)[finalrect] = dragrect(initialrect,stepsize)

Description [finalrect] = dragrect(initialrect) tracks one or more rectanglesanywhere on the screen. The n-by-4 matrix, rect, defines the rectangles. Eachrow of rect must contain the initial rectangle position as[left bottom width height] values. dragrect returns the final position of therectangles in finalrect.

[finalrect] = dragrect(initialrect,stepsize) moves the rectangles inincrements of stepsize. The lower-left corner of the first rectangle isconstrained to a grid of size stepsize starting at the lower-left corner of thefigure, and all other rectangles maintain their original offset from the firstrectangle. [finalrect] = dragrect(...) returns the final positions of therectangles when the mouse button is released. The default stepsize is 1.

Remarks dragrect returns immediately if a mouse button is not currently pressed. Usedragrect in a ButtonDownFcn, or from the command line in conjunction withwaitforbuttonpress to ensure that the mouse button is down when dragrectis called. dragrect returns when you release the mouse button.

Example Drag a rectangle that is 50 pixels wide and 100 pixels in height.

waitforbuttonpresspoint1 = get(gcf,'CurrentPoint') % button down detectedrect = [point1(1,1) point1(1,2) 50 100][r2] = dragrect(rect)

See Also rbbox, waitforbuttonpress

406

Page 454: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

drawnow

1drawnowPurpose Complete pending drawing events

Syntax drawnow

Description drawnow flushes the event queue and updates the figure window.

Remarks Other events that cause MATLAB to flush the event queue and draw the figurewindows include:

• Returning to the MATLAB prompt

• A pause statement

• A waitforbuttonpress statement

• A waitfor statement

• A getframe statement

• A figure statement

Examples Executing the statements,

x = –pi:pi/20:pi;plot(x,cos(x))drawnowtitle('A Short Title')grid on

as an M-file updates the current figure after executing the drawnow functionand after executing the final statement.

See Also waitfor, pause, waitforbuttonpress

407

Page 455: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dsearch

1dsearchPurpose Search for nearest point

Syntax K = dsearch(x,y,TRI,xi,yi)K = dsearch(x,y,TRI,xi,yi,S)

Description K = dsearch(x,y,TRI,xi,yi) returns the index of the nearest (x,y) point tothe point (xi,yi). dsearch requires a triangulation TRI of the points x,yobtained from delaunay.

K = dsearch(x,y,TRI,xi,yi,S) uses the sparse matrix S instead ofcomputing it each time:

S = sparse(TRI(:,[1 1 2 2 3 3]),TRI(:,[2 3 1 3 1 2]),1,nxy,nxy)

where nxy = prod(size(x)).

See Also delaunay, tsearch, voronoi

408

Page 456: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

dsearchn

1dsearchnPurpose n-D nearest point search

Syntax k = dsearchn(X,T,XI)k = dsearchn(X,T,XI,outval)k = dsearchn(X,XI)[k,d] = dsearchn(X,...)

Description k = dsearchn(X,T,XI) returns the indices k of the closest points in X for eachpoint in XI. X is an m-by-n matrix representing m points in n-D space. XI is ap-by-n matrix, representing p points in n-D space. T is a numt-by-n+1 matrix, atessellation of the data X generated by delaunayn. The output k is a columnvector of length p.

k = dsearchn(X,T,XI,outval) returns the indices k of the closest points in Xfor each point in XI, unless a point is outside the convex hull. If XI(J,:) isoutside the convex hull, then K(J) is assigned outval, a scalar double. Inf isoften used for outval. If outval is [], then k is the same as in the casek = dsearchn(X,T,XI).

k = dsearchn(X,XI) performs the search without using a tessellation. Withlarge X and small XI, this approach is faster and uses much less memory.

[k,d] = dsearchn(X,...) also returns the distances d to the closest points. dis a column vector of length p.

See Also tsearch, dsearch, tsearchn, griddatan, delaunayn

409

Page 457: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

echo

1echoPurpose Echo M-files during execution

Syntax echo onecho offechoecho fcnname onecho fcnname offecho fcnnameecho on allecho off all

Description The echo command controls the echoing of M-files during execution. Normally,the commands in M-files do not display on the screen during execution.Command echoing is useful for debugging or for demonstrations, allowing thecommands to be viewed as they execute.

The echo command behaves in a slightly different manner for script files andfunction files. For script files, the use of echo is simple; echoing can be eitheron or off, in which case any script used is affected.

With function files, the use of echo is more complicated. If echo is enabled on afunction file, the file is interpreted, rather than compiled. Each input line isthen displayed as it is executed. Since this results in inefficient execution, useecho only for debugging.

See Also function

echo on Turns on the echoing of commands in all script files.

echo off Turns off the echoing of commands in all script files.

echo Toggles the echo state.

echo fcnname on Turns on echoing of the named function file.

echo fcnname off Turns off echoing of the named function file.

echo fcnname Toggles the echo state of the named function file.

echo on all Set echoing on for all function files.

echo off all Set echoing off for all function files.

410

Page 458: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

edit

1editPurpose Edit an M-file

GraphicalInterface

As an alternative to the edit function, select New or Open from the File menuin the MATLAB desktop.

Syntax editedit funedit file.extedit class/funedit private/funedit class/private/fun

Description edit opens a new editor window.

edit fun opens the M-file fun.m in the default editor.

edit file.ext opens the specified text file.

edit class/fun, edit private/fun, or edit class/private/fun can beused to edit a method, private function, or private method (for the class namedclass).

Remarks Specify the default editor for MATLAB in the Command Window. SelectPreferences from the File menu. On the Editor/Debugger panel, selectMATLAB’s Editor/Debugger or specify another.

411

Page 459: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eig

1eigPurpose Find eigenvalues and eigenvectors

Syntax d = eig(A)d = eig(A,B)[V,D] = eig(A)[V,D] = eig(A,'nobalance')[V,D] = eig(A,B)[V,D] = eig(A,B,flag)

Description d = eig(A) returns a vector of the eigenvalues of matrix A.

Note You can use the d = eig(S) syntax, where S is sparse and symmetric,to returns the eigenvalues of S. To request eigenvectors, and in all other cases,use eigs to find the eigenvalues or eigenvectors of sparse matrices.

d = eig(A,B) returns a vector containing the generalized eigenvalues, if A andB are square matrices.

[V,D] = eig(A) produces matrices of eigenvalues (D) and eigenvectors (V) ofmatrix A, so that A∗V = V∗D. Matrix D is the canonical form of A – a diagonalmatrix with A’s eigenvalues on the main diagonal. Matrix V is the modalmatrix—its columns are the eigenvectors of A.

For eig(A), the eigenvectors are scaled so that the norm of each is 1.0. Use[W,D] = eig(A.'); W = W.' to compute the left eigenvectors, which satisfyW∗A = D∗W.

[V,D] = eig(A,'nobalance') finds eigenvalues and eigenvectors without apreliminary balancing step. Ordinarily, balancing improves the conditioning ofthe input matrix, enabling more accurate computation of the eigenvectors andeigenvalues. However, if a matrix contains small elements that are really dueto roundoff error, balancing may scale them up to make them as significant asthe other elements of the original matrix, leading to incorrect eigenvectors. Usethe nobalance option in this event. See the balance function for more details.

412

Page 460: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eig

[V,D] = eig(A,B) produces a diagonal matrix D of generalized eigenvaluesand a full matrix V whose columns are the corresponding eigenvectors so thatA∗V = B∗V∗D.

[V,D] = eig(A,B,flag) specifies the algorithm used to compute eigenvaluesand eigenvectors. flag can be:

Remarks The eigenvalue problem is to determine the nontrivial solutions of the equation

where A is an n-by-n matrix, x is a length n column vector, and λ is a scalar. Then values of λ that satisfy the equation are the eigenvalues, and thecorresponding values of x are the right eigenvectors. In MATLAB, the functioneig solves for the eigenvalues λ, and optionally the eigenvectors x.

The generalized eigenvalue problem is to determine the nontrivial solutions ofthe equation

where both A and B are n-by-n matrices and λ is a scalar. The values of λ thatsatisfy the equation are the generalized eigenvalues and the correspondingvalues of x are the generalized right eigenvectors.

If B is nonsingular, the problem could be solved by reducing it to a standardeigenvalue problem

Because B can be singular, an alternative algorithm, called the QZ method, isnecessary.

When a matrix has no repeated eigenvalues, the eigenvectors are alwaysindependent and the eigenvector matrix V diagonalizes the original matrix A ifapplied as a similarity transformation. However, if a matrix has repeated

'chol' Computes the generalized eigenvalues of A and B using theCholesky factorization of B. This is the default for symmetric(Hermitian) A and symmetric (Hermitian) positive definite B.

'qz' Ignores the symmetry, if any, and uses the QZ algorithm as itwould for nonsymmetric (non-Hermitian) A and B.

Ax λx=

Ax λBx=

B 1– Ax λx=

413

Page 461: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eig

eigenvalues, it is not similar to a diagonal matrix unless it has a full(independent) set of eigenvectors. If the eigenvectors are not independent thenthe original matrix is said to be defective. Even if a matrix is defective, thesolution from eig satisfies A∗X = X∗D.

Examples The matrix

B = [3 -2 -.9 2*eps;-2 4 -1 -eps;-eps/4 eps/2 -1 0;-.5 -.5 .1 1];

has elements on the order of roundoff error. It is an example for which thenobalance option is necessary to compute the eigenvectors correctly. Try thestatements

[VB,DB] = eig(B)B∗VB - VB∗DB[VN,DN] = eig(B,'nobalance')B∗VN - VN∗DN

Algorithm MATLAB uses LAPACK routines to compute eigenvalues and eigenvectors:

Case Routine

Real symmetric A DSYEV

Real nonsymmetric A:

• With preliminary balance step DGEEV

• d = eig(A,'nobalance') DGEHRD, DHSEQR

• [V,D] = eig(A,'nobalance') DGEHRD, DORGHR, DHSEQR, DTREVC

Hermitian A ZHEEV

Non-Hermitian A:

• With preliminary balance step ZGEEV

• d = eig(A,'nobalance') ZGEHRD, ZHSEQR

• [V,D] = eig(A,'nobalance') ZGEHRD, ZUNGHR, ZHSEQR, ZTREVC

414

Page 462: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eig

See Also balance, condeig, eigs, hess, qz, schur

References [1] Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra,J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen,LAPACK User’s Guide, Third Edition, SIAM, Philadelphia, 1999.

Real symmetric A,symmetric positive definite B.

DSYGV

Special case:eig(A,B,'qz') for real A, B(same as real nonsymmetric A, realgeneral B)

DGGEV

Real nonsymmetric A, real general B DGGEV

Complex Hermitian A,Hermitian positive definite B.

ZHEGV

Special case:eig(A,B,'qz') for complex A or B(same as complex non-Hermitian A,complex B)

ZGGEV

Complex non-Hermitian A, complex B ZGGEV

Case Routine

415

Page 463: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

1eigsPurpose Find a few eigenvalues and eigenvectors of a square large sparse matrix

Syntax d = eigs(A)d = eigs(A,B)d = eigs(A,k)d = eigs(A,B,k)d = eigs(A,k,sigma)d = eigs(A,B,k,sigma)d = eigs(A,k,sigma,options)d = eigs(A,B,k,sigma,options)d = eigs(Afun,n)d = eigs(Afun,n,B)d = eigs(Afun,n,k)d = eigs(Afun,n,B,k)d = eigs(Afun,n,k,sigma)d = eigs(Afun,n,B,k,sigma)d = eigs(Afun,n,k,sigma,options)d = eigs(Afun,n,B,k,sigma,options)d = eigs(Afun,n,k,sigma,options,p1,p2...)d = eigs(Afun,n,B,k,sigma,options,p1,p2...)[V,D] = eigs(A,...)[V,D] = eigs(Afun,n,...)[V,D,flag] = eigs(A,...)[V,D,flag] = eigs(Afun,n,...)

Description d = eigs(A) returns a vector of A's six largest magnitude eigenvalues.

[V,D] = eigs(A) returns a diagonal matrix D of A's six largest magnitudeeigenvalues and a matrix V whose columns are the corresponding eigenvectors.

[V,D,flag] = eigs(A) also returns a convergence flag. If flag is 0 then allthe eigenvalues converged; otherwise not all converged.

eigs(Afun,n) accepts the function Afun instead of the matrix A. y = Afun(x)should return y = A*x, where x is an n-by-1 vector, and n is the size of A. Thematrix A represented by Afun is assumed to be real and nonsymmetric. In allthese calling sequences, eigs(A,...) can be replaced by eigs(Afun,n,...).

416

Page 464: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

eigs(A,B) solves the generalized eigenvalue problem A*V == B*V*D. B mustbe symmetric (or Hermitian) positive definite and the same size as A.eigs(A,[],...) indicates the standard eigenvalue problem A*V == V*D.

eigs(A,k) and eigs(A,B,k) return the k largest magnitude eigenvalues.

eigs(A,k,sigma) and eigs(A,B,k,sigma) return k eigenvalues based onsigma, which can take any of the following values:

Note The MATLAB 5 value sigma = 'be' is obsolete for nonsymmetric andcomplex problems.

scalar The eigenvalues closest to sigma. If A is a function, Afun returnsA\x (standard) or (A-sigma*B)\x (generalized). Note, B need onlybe symmetric (Hermitian) positive semi-definite.

'lm' Largest magnitude (default)

'sm' Smallest magnitude

For real symmetric problems, the following are also options:

'la' Largest algebraic ('lr' in MATLAB 5)

'sa' Smallest algebraic ('sr' in MATLAB 5)

'be' Both ends (one more from high end if k is odd)

For nonsymmetric and complex problems, the following are also options:

'lr' Largest real part

'sr' Smallest real part

'li' Largest imaginary part

'si' Smallest imaginary part

417

Page 465: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

eigs(A,K,sigma,opts) and eigs(A,B,k,sigma,opts) specify an optionsstructure:

Note MATLAB 5 options stagtol and cheb are no longer allowed.

Parameter Description DefaultValue

options.issym 1 if A or A-sigma*B represented byAfun is symmetric, 0 otherwise.

0

options.isreal 1 if A or A-sigma*B represented byAfun is real, 0 otherwise.

1

options.tol Convergence:abs(lamda_comp-lamda_true) <tol*abs(lamda_comp).

eps

options.maxit Maximum number of iterations. 300

options.p Number of basis vectors. p >= 2k(p >= 2k+1 real nonsymmetric)advised. Note: p must satisfyk < p <= n for real symmetric,k+1 < p <= n otherwise.

2k

options.v0 Starting vector. RandomlygeneratedbyARPACK

options.disp Diagnostic information display level. 1

options.cholB 1 if B is really its Cholesky factorchol(B), 0 otherwise.

0

options.permB Permutation vector permB if sparse B isreally chol(B(permB,permB)).

1:N

418

Page 466: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

eigs(Afun,n,k,sigma,opts,p1,p2,...) andeigs(Afun,n,B,k,sigma,opts,p1,p2,...) provide for additional argumentswhich are passed to Afun(x,p1,p2,...).

Remarks d = eigs(A,k) is not a substitute for

d = eig(full(A))d = sort(d)d = d(end-k+1:end)

but is most appropriate for large sparse matrices. If the problem fits intomemory, it may be quicker to use eig(full(A)).

Algorithm eigs provides the reverse communication required by the Fortran libraryARPACK, namely the routines DSAUPD, DSEUPD, DNAUPD, DNEUPD, ZNAUPD, andZNEUPD.

Examples Example 1: This example shows the use of function handles.

A = delsq(numgrid('C',15));d1 = eigs(A,5,'sm');

Equivalently, if dnRk is the following one-line function:

function y = dnRk(x,R,k)y = (delsq(numgrid(R,k))) * x;

then pass dnRk's additional arguments, 'C' and 15, to eigs.

n = size(A,1);opts.issym = 1;d2 = eigs(@dnRk,n,5,'sm',opts,'C',15);

Example 2: west0479 is a real 479-by-479 sparse matrix with both real andpairs of complex conjugate eigenvalues. eig computes all 479 eigenvalues. eigseasily picks out the largest magnitude eigenvalues.

This plot shows the 8 largest magnitude eigenvalues of west0479 as computedby eig and eigs.

load west0479d = eig(full(west0479))dlm = eigs(west0479,8)

419

Page 467: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

[dum,ind] = sort(abs(d));plot(dlm,'k+')hold onplot(d(ind(end-7:end)),'ks')hold offlegend('eigs(west0479,8)','eig(full(west0479))')

Example 3: A = delsq(numgrid('C',30)) is a symmetric positive definitematrix of size 632 with eigenvalues reasonably well-distributed in the interval(0 8), but with 18 eigenvalues repeated at 4. The eig function computes all 632eigenvalues. It computes and plots the six largest and smallest magnitudeeigenvalues of A successfully with:

A = delsq(numgrid('C',30));d = eig(full(A));[dum,ind] = sort(abs(d));dlm = eigs(A);dsm = eigs(A,6,'sm');

−150 −100 −50 0 50 100 150−2000

−1500

−1000

−500

0

500

1000

1500

2000eigs(west0479,8)eig(full(west0479))

420

Page 468: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

subplot(2,1,1)plot(dlm,'k+')hold onplot(d(ind(end:-1:end-5)),'ks')hold offlegend('eigs(A)','eig(full(A))',3)set(gca,'XLim',[0.5 6.5])

subplot(2,1,2)plot(dsm,'k+')hold onplot(d(ind(1:6)),'ks')hold offlegend('eigs(A,6,''sm'')','eig(full(A))',2)set(gca,'XLim',[0.5 6.5])

However, the repeated eigenvalue at 4 must be handled more carefully. Thecall eigs(A,18,4.0) to compute 18 eigenvalues near 4.0 tries to findeigenvalues of A - 4.0*I. This involves divisions of the form 1/

1 2 3 4 5 67.8

7.85

7.9

7.95

8

eigs(A)eig(full(A))

1 2 3 4 5 60

0.05

0.1

0.15

0.2eigs(A,6,’SM’)eig(full(A))

421

Page 469: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

(lambda - 4.0), where lambda is an estimate of an eigenvalue of A. As lambdagets closer to 4.0, eigs fails. We must use sigma near but not equal to 4 to findthose 18 eigenvalues.

sigma = 4 - 1e-6[V,D] = eigs(A,18,sigma)

The plot shows the 20 eigenvalues closest to 4 that were computed by eig, alongwith the 18 eigenvalues closest to 4 - 1e-6 that were computed by eigs.

See Also arpackc, eig, svds

References [1] Lehoucq, R.B. and D.C. Sorensen, “Deflation Techniques for an ImplicitlyRe-Started Arnoldi Iteration,” SIAM J. Matrix Analysis and Applications, Vol.17, 1996, pp. 789-821.

[2] Lehoucq, R.B., D.C. Sorensen, and C. Yang, ARPACK Users' Guide: Solutionof Large-Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods,SIAM Publications, Philadelphia, 1998.

2 4 6 8 10 12 14 16 18 203.97

3.98

3.99

4

4.01

4.02

4.0318 repeated eigenvalues of delsq(numgrid(’C’,30)) at 4

eigs(A,18,sigma)eig(A)

422

Page 470: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eigs

[3] Sorensen, D.C., “Implicit Application of Polynomial Filters in a k-StepArnoldi Method,” SIAM J. Matrix Analysis and Applications, Vol. 13, 1992,pp. 357-385.

423

Page 471: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ellipj

1ellipjPurpose Jacobi elliptic functions

Syntax [SN,CN,DN] = ellipj(U,M)[SN,CN,DN] = ellipj(U,M,tol)

Definition The Jacobi elliptic functions are defined in terms of the integral:

Then

Some definitions of the elliptic functions use the modulus k instead of theparameter m. They are related by:

The Jacobi elliptic functions obey many mathematical identities; for a goodsample, see [1].

Description [SN,CN,DN] = ellipj(U,M) returns the Jacobi elliptic functions SN, CN, andDN, evaluated for corresponding elements of argument U and parameter M.Inputs U and M must be the same size (or either can be scalar).

[SN,CN,DN] = ellipj(U,M,tol) computes the Jacobi elliptic functions toaccuracy tol. The default is eps; increase this for a less accurate but morequickly computed answer.

Algorithm ellipj computes the Jacobi elliptic functions using the method of thearithmetic-geometric mean [1]. It starts with the triplet of numbers:

u θd

1 m θsin2–( )12---

-------------------------------------0

φ∫=

sn u( ) φsin cn u( ), φcos= = dn u( ), 1 m φsin2–( )12---

= am u( ), φ=

k2 m αsin2= =

a0 1,= b0 1 m–( )12---,= c0 m( )

12---

=

424

Page 472: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ellipj

ellipj computes successive iterates with:

Next, it calculates the amplitudes in radians using:

being careful to unwrap the phases correctly. The Jacobian elliptic functionsare then simply:

Limitations The ellipj function is limited to the input domain . Map other valuesof M into this range using the transformations described in [1], equations 16.10and 16.11. U is limited to real values.

See Also ellipke

References [1] Abramowitz, M. and I.A. Stegun, Handbook of Mathematical Functions,Dover Publications, 1965, 17.6.

ai12--- ai 1– bi 1–+( )=

bi ai 1– bi 1–( )12---

=

ci12--- ai 1– bi 1––( )=

2φn 1– φn–( )sincnan------ φn( )sin=

sn u( ) φ0sin=

cn u( ) φ0cos=

dn u( ) 1 m sn u( )2⋅–( )12---

=

0 m 1≤ ≤

425

Page 473: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ellipke

1ellipkePurpose Complete elliptic integrals of the first and second kind

Syntax K = ellipke(M)[K,E] = ellipke(M)[K,E] = ellipke(M,tol)

Definition The complete elliptic integral of the first kind [1] is:

where F, the elliptic integral of the first kind, is:

The complete elliptic integral of the second kind,

is:

Some definitions of K and E use the modulus k instead of the parameter m. Theyare related by:

K m( ) F π 2⁄ m( ),=

K m( ) 1 t2–( ) 1 mt2–( )[ ]1–2------

0

1

∫ dt 1 m θsin2–( )1–2------

θd0

π2---

∫= =

E m( ) E K m( )( ) E π 2⁄ m⟨ | ⟩,= =

E m( ) 1 t2–( )1–2------

1 mt2–( )12---

0

1

∫= dt 1 m θsin2–( )12---

0

π2---

∫ dθ=

k2 m αsin2= =

426

Page 474: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ellipke

Description K = ellipke(M) returns the complete elliptic integral of the first kind for theelements of M.

[K,E] = ellipke(M) returns the complete elliptic integral of the first andsecond kinds.

[K,E] = ellipke(M,tol) computes the Jacobian elliptic functions to accuracytol. The default is eps; increase this for a less accurate but more quicklycomputed answer.

Algorithm ellipke computes the complete elliptic integral using the method of thearithmetic-geometric mean described in [1], section 17.6. It starts with thetriplet of numbers:

ellipke computes successive iterations of ai, bi, and ci with:

stopping at iteration n when cn ≈ 0, within the tolerance specified by eps. Thecomplete elliptic integral of the first kind is then:

Limitations ellipke is limited to the input domain .

See Also ellipj

References [1] Abramowitz, M. and I.A. Stegun, Handbook of Mathematical Functions,Dover Publications, 1965, 17.6.

a0 1= b0, 1 m–( )12---

= c0, m( )12---

=

ai12--- ai 1– bi 1–+( )=

bi ai 1– bi 1–( )12---

=

ci12--- ai 1– bi 1––( )=

K m( ) π2an----------=

0 m 1≤ ≤

427

Page 475: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

else

1elsePurpose Conditionally execute statements

Syntax if expressionstatements

elsestatements

end

Description The else command is used to delineate an alternate block of statements.

if expressionstatements

elsestatements

end

The second set of statements is executed if the expression has any zeroelements. The expression is usually the result of

expression rop expression

where rop is ==, <, >, <=, >=, or ~=.

See Also break, elseif, end, for, if, return, switch, while

428

Page 476: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

elseif

1elseifPurpose Conditionally execute statements

Syntax if expressionstatements

elseif expressionstatements

end

Description The elseif command conditionally executes statements.

if expressionstatements

elseif expressionstatements

end

The second block of statements executes if the first expression has any zeroelements and the second expression has all nonzero elements. The expressionis usually the result of

expression rop expression

where rop is ==, <, >, <=, >=, or ~=.

else if, with a space between the else and the if, differs from elseif, withno space. The former introduces a new, nested, if, which must have a matchingend. The latter is used in a linear sequence of conditional statements with onlyone terminating end.

The two segments

if A if Ax = a x = a

else elseif Bif B x = b

x = b elseif Celse x = c

if C elsex = c x = d

else endx = d

end

429

Page 477: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

elseif

endend

produce identical results. Exactly one of the four assignments to x is executed,depending upon the values of the three logical expressions, A, B, and C.

See Also break, else, end, for, if, return, switch, while

430

Page 478: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

end

1endPurpose Terminate for, while, switch, try, and if statements or indicate last index

Syntax while expression% (or if, for, or try)statements

end

B = A(index:end,index)

Description end is used to terminate for, while, switch, try, and if statements. Withoutan end statement, for, while, switch, try, and if wait for further input. Eachend is paired with the closest previous unpaired for, while, switch, try, or ifand serves to delimit its scope.

The end command also serves as the last index in an indexing expression. Inthat context, end = (size(x,k)) when used as part of the kth index. Examplesof this use are X(3:end) and X(1,1:2:end-1). When using end to grow anarray, as in X(end+1)=5, make sure X exists first.

You can overload the end statement for a user object by defining an end methodfor the object. The end method should have the calling sequence end(obj,k,n),where obj is the user object, k is the index in the expression where the endsyntax is used, and n is the total number of indices in the expression. Forexample, consider the expression

A(end-1,:)

MATLAB will call the end method defined for A using the syntax

end(A,1,2)

Examples This example shows end used with the for and if statements.

for i = 1:nif a(i) == 0

a(i) = a(i) + 2;end

end

In this example, end is used in an indexing expression.

A = magic(5)

431

Page 479: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

end

A =

17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

B = A(end,2:end)

B =

18 25 2 9

See Also break, for, if, return, switch, try, while

432

Page 480: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eomday

1eomdayPurpose End of month

Syntax E = eomday(Y,M)

Description E = eomday(Y,M) returns the last day of the year and month given bycorresponding elements of arrays Y and M.

Examples Because 1996 is a leap year, the statement eomday(1996,2) returns 29.

To show all the leap years in this century, try:

y = 1900:1999;E = eomday(y,2∗ones(length(y),1)');y(find(E==29))'

ans = Columns 1 through 6

1904 1908 1912 1916 1920 1924

Columns 7 through 121928 1932 1936 1940 1944 1948

Columns 13 through 181952 1956 1960 1964 1968 1972

Columns 19 through 241976 1980 1984 1988 1992 1996

See Also datenum, datevec, weekday

433

Page 481: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eps

1epsPurpose Floating-point relative accuracy

Syntax eps

Description eps returns the distance from 1.0 to the next largest floating-point number.

The value eps is a default tolerance for pinv and rank, as well as several otherMATLAB functions. eps = 2^(-52), which is roughly 2.22e-16.

See Also realmax, realmin

434

Page 482: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

erf, erfc, erfcx, erfinv

1erf, erfc, erfcx, erfinvPurpose Error functions

Syntax Y = erf(X) Error functionY = erfc(X) Complementary error functionY = erfcx(X) Scaled complementary error functionX = erfinv(Y) Inverse of the error function

Definition The error function erf(X) is twice the integral of the Gaussian distributionwith 0 mean and variance of :

The complementary error function erfc(X) is defined as:

The scaled complementary error function erfcx(X) is defined as:

For large X, erfcx(X) is approximately

Description Y = erf(X) returns the value of the error function for each element of realarray X.

Y = erfc(X) computes the value of the complementary error function.

Y = erfcx(X) computes the value of the scaled complementary error function.

X = erfinv(Y) returns the value of the inverse error function for each elementof Y. The elements of Y must fall within the domain

Remarks The relationship between the error function and the standard normalprobability distribution is:

x = -5:0.1:5;standard_normal_cdf = (1 + (erf(x/sqrt(2))))./2;

Examples erfinv(1) is Inf

erfinv(-1) is -Inf.

1 2⁄

erf x( ) 2π

------- e t2–0

x

∫ dt=

erfc x( ) 2π

------- e t2– tdx

∞∫ 1 erf x( )–= =

erfcx x( ) ex2erfc x( )=

------- 1

x---

1– Y 1.< <

435

Page 483: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

erf, erfc, erfcx, erfinv

For abs(Y) > 1, erfinv(Y) is NaN.

Algorithms For the error functions, the MATLAB code is a translation of a Fortran programby W. J. Cody, Argonne National Laboratory, NETLIB/SPECFUN, March 19,1990. The main computation evaluates near-minimax rational approximationsfrom [1].

For the inverse of the error function, rational approximations accurate toapproximately six significant digits are used to generate an initialapproximation, which is then improved to full accuracy by two steps ofNewton’s method. The M-file is easily modified to eliminate the Newtonimprovement. The resulting code is about three times faster in execution, butis considerably less accurate.

References [1] Cody, W. J., “Rational Chebyshev Approximations for the Error Function,”Math. Comp., pgs. 631-638, 1969

436

Page 484: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

error

1errorPurpose Display error messages

Syntax error('error_message')

Description error('error_message') displays an error message and returns control to thekeyboard. The error message contains the input string error_message.

The error command has no effect if error_message is a null string.

Examples The error command provides an error return from M-files.

function foo(x,y)if nargin ~= 2

error('Wrong number of input arguments')end

The returned error message looks like:

» foo(pi)??? Error using ==> fooWrong number of input arguments

See Also dbstop, disp, lasterr, warning, errordlg

437

Page 485: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

errorbar

1errorbarPurpose Plot error bars along a curve

Syntax errorbar(Y,E)errorbar(X,Y,E)errorbar(X,Y,L,U)errorbar(...,LineSpec)h = errorbar(...)

Description Error bars show the confidence level of data or the deviation along a curve.

errorbar(Y,E) plots Y and draws an error bar at each element of Y. The errorbar is a distance of E(i) above and below the curve so that each bar issymmetric and 2*E(i) long.

errorbar(X,Y,E) plots X versus Y with symmetric error bars 2*E(i) long. X, Y,E must be the same size. When they are vectors, each error bar is a distance ofE(i) above and below the point defined by (X(i),Y(i)). When they arematrices, each error bar is a distance of E(i,j) above and below the pointdefined by (X(i,j),Y(i,j)).

errorbar(X,Y,L,U) plots X versus Y with error bars L(i)+U(i) long specifyingthe lower and upper error bars. X, Y, L, and Umust be the same size. When theyare vectors, each error bar is a distance of L(i) below and U(i) above the pointdefined by (X(i),Y(i)). When they are matrices, each error bar is a distanceof L(i,j) below and U(i,j) above the point defined by (X(i,j),Y(i,j)).

errorbar(...,LineSpec) draws the error bars using the line type, markersymbol, and color specified by LineSpec.

h = errorbar(...) returns a vector of handles to line graphics objects.

Remarks When the arguments are all matrices, errorbar draws one line per matrixcolumn. If X and Y are vectors, they specify one curve.

Examples Draw symmetric error bars that are two standard deviation units in length.

X = 0:pi/10:pi;Y = sin(X);E = std(Y)*ones(size(X));

438

Page 486: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

errorbar

errorbar(X,Y,E)

See Also LineSpec, plot, std

−0.5 0 0.5 1 1.5 2 2.5 3 3.5−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

439

Page 487: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

errordlg

1errordlgPurpose Create and display an error dialog box

Syntax errordlgerrordlg('errorstring')errordlg('errorstring','dlgname')errordlg('errorstring','dlgname','on')h = errordlg(...)

Description errordlg creates an error dialog box, or if the named dialog exists, errordlgpops the named dialog in front of other windows.

errordlg displays a dialog box named 'Error Dialog' that contains the string'This is the default error string.'

errordlg('errorstring') displays a dialog box named 'Error Dialog' thatcontains the string 'errorstring'.

errordlg('errorstring','dlgname') displays a dialog box named 'dlgname'that contains the string 'errorstring'.

errordlg('errorstring','dlgname','on') specifies whether to replace anexisting dialog box having the same name. 'on' brings an existing error dialoghaving the same name to the foreground. In this case, errordlg does not createa new dialog.

h = errordlg(...) returns the handle of the dialog box.

Remarks MATLAB sizes the dialog box to fit the string 'errorstring'. The error dialogbox has an OK pushbutton and remains on the screen until you press the OKbutton or the Return key. After pressing the button, the error dialog boxdisappears.

The appearance of the dialog box depends on the windowing system you use.

Examples The function

errordlg('File not found','File Error');

440

Page 488: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

errordlg

displays this dialog box on a UNIX system:

See Also dialog, helpdlg, msgbox, questdlg, warndlg

441

Page 489: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

etime

1etimePurpose Elapsed time

Syntax e = etime(t2,t1)

Description e = etime(t2,t1) returns the time in seconds between vectors t1 and t2. Thetwo vectors must be six elements long, in the format returned by clock:

T = [Year Month Day Hour Minute Second]

Examples Calculate how long a 2048-point real FFT takes.

x = rand(2048,1);t = clock; fft(x); etime(clock,t)ans =

0.4167

Limitations As currently implemented, the etime function fails across month and yearboundaries. Since etime is an M-file, you can modify the code to work acrossthese boundaries if needed.

See Also clock, cputime, tic, toc

442

Page 490: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

etree

1etreePurpose Elimination tree

Syntax p = etree(A)p = etree(A,'col')p = etree(A,'sym')[p,q] = etree(...)

Description p = etree(A) returns an elimination tree for the square symmetric matrixwhose upper triangle is that of A. p(j) is the parent of column j in the tree, or0 if j is a root.

p = etree(A,'col') returns the elimination tree of A'∗A.

p = etree(A,'sym') is the same as p = etree(A).

[p,q] = etree(...) also returns a postorder permutation q of the tree.

See Also treelayout, treeplot, etreeplot

443

Page 491: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

etreeplot

1etreeplotPurpose Plot elimination tree

Syntax etreeplot(A)etreeplot(A,nodeSpec,edgeSpec)

Description etreeplot(A) plots the elimination tree of A (or A+A', if non-symmetric).

etreeplot(A,nodeSpec,edgeSpec) allows optional parameters nodeSpec andedgeSpec to set the node or edge color, marker, and linestyle. Use '' to omitone or both.

See Also etree, treeplot, treelayout

444

Page 492: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eval

1evalPurpose Execute a string containing a MATLAB expression

Syntax eval(expression)eval(expression,catch_expr)[a1,a2,a3,...] = eval(function(b1,b2,b3,...))

Description eval(expression) executes expression, a string containing any validMATLAB expression. You can construct expression by concatenatingsubstrings and variables inside square brackets:

expression = [string1,int2str(var),string2,...]

eval(expression,catch_expr) executes expression and, if an error isdetected, executes the catch_expr string. If expression produces an error, theerror string can be obtained with the lasterr function. This syntax is usefulwhen expression is a string that must be constructed from substrings. If thisis not the case, use the try...catch control flow statement in your code.

[a1,a2,a3,...] = eval(function(b1,b2,b3,...)) executes function witharguments b1,b2,b3,..., and returns the results in the specified outputvariables.

Remarks Using the eval output argument list is recommended over including the outputarguments in the expression string. The first syntax below avoids strictchecking by the MATLAB parser and can produce untrapped errors and otherunexpected behavior.

eval('[a1,a2,a3,...] = function(var)') % not recommended

[a1,a2,a3,...] = eval('function(var)') % recommended syntax

Examples This for loop generates a sequence of 12 matrices named M1 through M12:

for n = 1:12

magic_str = ['M',int2str(n),' = magic(n)']; eval(magic_str)

end

445

Page 493: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eval

This example uses a function showdemo that runs a MATLAB demo selected bythe user. If an error is encountered, a message is displayed that names thedemo that failed.

function showdemo(demos)errstring = 'Error running demo: ';n = input('Select a demo number: ');eval(demos(n,:),'[errstring demos(n,:)]')% ----- end of file showdemo.m -----

D = ['odedemo'; 'quademo'; 'fitdemo'];showdemo(D)Select a demo number: 2

ans =

Error running demo: quademo

The next example executes the size function on a 3-dimensional array,returning the array dimensions in output variables d1, d2, and d3.

A = magic(4);A(:,:,2) = A';

[d1,d2,d3] = eval('size(A)')

d1 = 4

d2 = 4

d3 = 2

See Also assignin, catch, evalin, feval, lasterr, try

446

Page 494: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

evalc

1evalcPurpose Evaluate MATLAB expression with capture

Syntax T = evalc(S)T = evalc(s1,s2)[T,X,Y,Z,...] = evalc(S)

Description T = evalc(S) is the same as eval(S) except that anything that would normallybe written to the command window is captured and returned in the characterarray T (lines in T are separated by \n characters).

T = evalc(s1,s2) is the same as eval(s1,s2) except that any output iscaptured into T.

[T,X,Y,Z,...] = evalc(S) is the same as [X,Y,Z,...] = eval(S) exceptthat any output is captured into T.

Remark When you are using evalc, diary, more, and input are disabled.

See Also diary, eval, evalin, input, more

447

Page 495: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

evalin

1evalinPurpose Execute a string containing a MATLAB expression in a workspace

Syntax evalin(ws,expression)[a1,a2,a3,...] = evalin(ws,expression)evalin(ws,expression,catch_expr)

Description evalin(ws,expression) executes expression, a string containing any validMATLAB expression, in the context of the workspace ws. ws can have a valueof 'base' or 'caller' to denote the MATLAB base workspace or the workspaceof the caller function. You can construct expression by concatenatingsubstrings and variables inside square brackets:

expression = [string1,int2str(var),string2,...]

[a1,a2,a3,...] = evalin(ws,expression) executes expression andreturns the results in the specified output variables. Using the evalin outputargument list is recommended over including the output arguments in theexpression string:

evalin(ws,'[a1,a2,a3,...] = function(var)')

The above syntax avoids strict checking by the MATLAB parser and canproduce untrapped errors and other unexpected behavior.

evalin(ws,expression,catch_expr) executes expression and, if an error isdetected, executes the catch_expr string. If expression produces an error, theerror string can be obtained with the lasterr function. This syntax is usefulwhen expression is a string that must be constructed from substrings. If thisis not the case, use the try...catch control flow statement in your code.

Remarks The MATLAB base workspace is the workspace that is seen from the MATLABcommand line (when not in the debugger). The caller workspace is theworkspace of the function that called the M-file. Note, the base and callerworkspaces are equivalent in the context of an M-file that is invoked from theMATLAB command line.

Examples This example extracts the value of the variable var in the MATLAB baseworkspace and captures the value in the local variable v:

v = evalin(‘base’,’var’);

448

Page 496: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

evalin

Limitation evalin cannot be used recursively to evaluate an expression. For example, asequence of the form evalin('caller','evalin(''caller'',''x'')')doesn't work.

See Also assignin, catch, eval, feval, lasterr, try

449

Page 497: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

exist

1existPurpose Check if a variable or file exists

GraphicalInterface

As an alternative to the exist function, use the Workspace browser. To openit, select Workspace from the View menu in the MATLAB desktop.

Syntax exist itemexist item kinda = exist('item',...)

Description exist item returns the status of the variable or file, item:

If item specifies a filename, that filename may include an extension topreclude conflicting with other similar filenames. For example,exist('file.ext').

MEX, MDL, and P-files must be on the MATLAB search path for exist toreturn the values shown above. If item is found, but is not on the MATLABsearch path, exist('item') returns 2, because it considers item to be anunknown file type.

Any other file type or directory specified by item is not required to be on theMATLAB search path to be recognized by exist. If the file or directory is noton the search path, then item must specify either a full pathname, a partialpathname relative to MATLABPATH, or a partial pathname relative to yourcurrent directory.

0 If item does not exist.

1 If the variable item exists in the workspace.

2 If item is an M-file or a file of unknown type.

3 If item is a MEX-file on your MATLAB search path.

4 If item is an MDL-file on your MATLAB search path.

5 If item is a built-in MATLAB function.

6 If item is a P-file on your MATLAB search path.

7 If item is a directory.

8 If item is a Java class.

450

Page 498: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

exist

If item is a Java class, then exist('item') returns an 8. However, if item is aJava class file, then exist('item') returns a 2.

exist item kind returns logical true (1), if an item of the specified kind isfound; otherwise, it returns 0. The kind argument may be one of the following:

a = exist('item',...) returns the status of the variable or file in variable, a.

Examples This example uses exist to check whether a MATLAB function is a built-in ora file:

type = exist('plot')type =

5plot is a built-in function.

In the example below, exist returns 8 on the Java class, Welcome, and returns2 on the Java class file, Welcome.class.

exist Welcomeans = 8

exist javaclasses/Welcome.classans = 2

See Also dir, help, lookfor, partialpath, what, which, who

var Checks only for variables.

builtin Checks only for built-in functions.

file Checks only for files or directories.

dir Checks only for directories.

class Checks only for Java classes.

451

Page 499: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

exit

1exit

Purpose Terminate MATLAB

GraphicalInterface

As an alternative to the exit function, select Exit MATLAB from the Filemenu or click the close box in the MATLAB desktop.

Syntax exit

Description exit ends the current MATLAB session. It is the same as quit.

See Also quit

452

Page 500: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

exp

1expPurpose Exponential

Syntax Y = exp(X)

Description The exp function is an elementary function that operates element-wise onarrays. Its domain includes complex numbers.

Y = exp(X) returns the exponential for each element of X. For complexz = x + i∗y, it returns the complex exponential:

Remark Use expm for matrix exponentials.

See Also expm, log, log10, expint

ez ex y( )cos i y( )sin+( )=

453

Page 501: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

expint

1expintPurpose Exponential integral

Syntax Y = expint(X)

Definitions The exponential integral is defined as:

Another common definition of the exponential integral function is the Cauchyprincipal value integral:

which, for real positive x, is related to expint as follows:

expint(-x+i∗0) = -Ei(x) - i∗piEi(x) = real(-expint(-x))

Description Y = expint(X) evaluates the exponential integral for each element of X.

Algorithm For elements of X in the domain , expint uses a series expansionrepresentation (equation 5.1.11 in [1]):

For all other elements of X, expint uses a continued fraction representation(equation 5.1.22 in [1]):

References [1] Abramowitz, M. and I. A. Stegun. Handbook of Mathematical Functions.Chapter 5, New York: Dover Publications, 1965.

e t–

t-------

x

∞∫ dt

Ei x( ) e t– td∞–

x

∫=

38 2,–[ ]

Ei x( ) γ– x 1–( )nxn

n n!---------------------

n 1=

∑–ln–=

En z( ) e z– 1z+------ n

1+------- 1

z+------ n 1+

1+------------- 2

z+------ …

angle z( ) π<,=

454

Page 502: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

expm

1expmPurpose Matrix exponential

Syntax Y = expm(X)

Description Y = expm(X) raises the constant e to the matrix power X. Complex results areproduced if X has nonpositive eigenvalues.

Use exp for the element-by-element exponential.

Algorithm The expm function is built-in, but it uses the Padé approximation with scalingand squaring algorithm expressed in the file expm1.m.

A second method of calculating the matrix exponential uses a Taylor seriesapproximation. This method is demonstrated in the file expm2.m. The Taylorseries approximation is not recommended as a general-purpose method. It isoften slow and inaccurate.

A third way of calculating the matrix exponential, found in the file expm3.m, isto diagonalize the matrix, apply the function to the individual eigenvalues, andthen transform back. This method fails if the input matrix does not have a fullset of linearly independent eigenvectors.

References [1] and [2] describe and compare many algorithms for computingexpm(X). The built-in method, expm1, is essentially method 3 of [2].

Examples Suppose A is the 3-by-3 matrix

1 1 00 0 20 0 -1

then expm(A) is

2.7183 1.7183 1.08620 1.0000 1.26420 0 0.3679

while exp(A) is

2.7183 2.7183 1.00001.0000 1.0000 7.38911.0000 1.0000 0.3679

455

Page 503: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

expm

Notice that the diagonal elements of the two results are equal; this would betrue for any triangular matrix. But the off-diagonal elements, including thosebelow the diagonal, are different.

See Also exp, funm, logm, sqrtm

References [1] Golub, G. H. and C. F. Van Loan, Matrix Computation, p. 384, JohnsHopkins University Press, 1983.

[2] Moler, C. B. and C. F. Van Loan, “Nineteen Dubious Ways to Compute theExponential of a Matrix,” SIAM Review 20, 1979, pp. 801-836.

456

Page 504: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

eye

1eyePurpose Identity matrix

Syntax Y = eye(n)Y = eye(m,n)Y = eye(size(A))

Description Y = eye(n) returns the n-by-n identity matrix.

Y = eye(m,n) or eye([m n]) returns an m-by-n matrix with 1’s on thediagonal and 0’s elsewhere.

Y = eye(size(A)) returns an identity matrix the same size as A.

Limitations The identity matrix is not defined for higher-dimensional arrays. Theassignment y = eye([2,3,4]) results in an error.

See Also ones, rand, randn, zeros

457

Page 505: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezcontour

1ezcontourPurpose Easy to use contour plotter

Syntax ezcontour(f)ezcontour(f,domain)ezcontour(...,n)

Description ezcontour(f) plots the contour lines of f(x,y), where f is a string thatrepresents a mathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2π < x < 2π, -2π < y < 2π.MATLAB chooses the computational grid according to the amount of variationthat occurs; if the function f is not defined (singular) for points on the grid, thenthese points are not plotted.

ezcontour(f,domain) plots f(x,y) over the specified domain. domain can beeither a 4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max](where min < x < max, min < y < max).

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezcontour('u^2 - v^3',[0,1],[3,6]) plots the contour lines for u2 - v3 over0 < u < 1, 3 < v < 6.

ezcontour(...,n) plots f over the default domain using an n-by-n grid. Thedefault value for n is 60.

ezcontour automatically adds a title and axis labels.

Remarks Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezcontour. For example, the MATLAB syntax for acontour plot of the expression,

sqrt(x.^2 + y.^2)

is written as:

ezcontour('sqrt(x^2 + y^2)')

That is, x^2 is interpreted as x.^2 in the string you pass to ezcontour.

Examples The following mathematical expression defines a function of two variables, xand y.

458

Page 506: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezcontour

ezcontour requires a string argument that expresses this function usingMATLAB syntax to represent exponents, natural logs, etc. This function isrepresented by the string:

f = ['3*(1−x)^2*exp(−(x^2)−(y+1)^2)',...'− 10*(x/5 − x^3 − y^5)*exp(-x^2−y^2)',...'- 1/3*exp(−(x+1)^2 − y^2)'];

For convenience, this string is written on three lines and concatenated into onestring using square brackets.

Pass the string variable f to ezcontour along with a domain ranging from −3to 3 and specify a computational grid of 49-by-49:

ezcontour(f,[-3,3],49)

In this particular case, the title is too long to fit at the top of the graph soMATLAB abbreviates the string.

f x y,( ) 3 1 x–( )2e x2– y 1+( )2– 10 x5--- x3– y5–

e x2– y2––13---e x 1+( )2– y2––=

−3 −2 −1 0 1 2 3−3

−2

−1

0

1

2

3

x

y

3 (1−x)2 exp(−(x2) − (y+1)2)− ~~~ x2−y2)− 1/3 exp(−(x+1)2 − y2)

459

Page 507: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezcontour

See Also contour, ezcontourf, ezmesh, ezmeshc, ezplot, ezplot3, ezpolar, ezsurf,ezsurfc

460

Page 508: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezcontourf

1ezcontourfPurpose Easy to use filled contour plotter

Syntax ezcontourf(f)ezcontourf(f,domain)ezcontourf(...,n)

Description ezcontourf(f) plots the contour lines of f(x,y), where f is a string thatrepresents a mathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2π < x < 2π, -2π < y < 2π.MATLAB chooses the computational grid according to the amount of variationthat occurs; if the function f is not defined (singular) for points on the grid, thenthese points are not plotted.

ezcontourf(f,domain) plots f(x,y) over the specified domain. domain can beeither a 4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max](where, min < x < max, min < y < max).

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezcontourf('u^2 - v^3',[0,1],[3,6]) plots the contour lines for u2 - v3 over0 < u < 1, 3 < v < 6.

ezcontourf(...,n) plots f over the default domain using an n-by-n grid. Thedefault value for n is 60.

ezcontourf automatically adds a title and axis labels.

Remarks Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezcontourf. For example, the MATLAB syntax for afilled contour plot of the expression,

sqrt(x.^2 + y.^2);

is written as:

ezcontourf('sqrt(x^2 + y^2)')

That is, x^2 is interpreted as x.^2 in the string you pass to ezcontourf.

Examples The following mathematical expression defines a function of two variables, xand y.

461

Page 509: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezcontourf

ezcontourf requires a string argument that expresses this function usingMATLAB syntax to represent exponents, natural logs, etc. This function isrepresented by the string:

f = ['3*(1−x)^2*exp(−(x^2)−(y+1)^2)',...'− 10*(x/5 − x^3 − y^5)*exp(-x^2−y^2)',...'- 1/3*exp(−(x+1)^2 − y^2)'];

For convenience, this string is written on three lines and concatenated into onestring using square brackets.

Pass the string variable f to ezcontourf along with a domain ranging from −3to 3 and specify a grid of 49-by-49:

ezcontourf(f,[-3,3],49)

In this particular case, the title is too long to fit at the top of the graph soMATLAB abbreviates the string.

f x y,( ) 3 1 x–( )2e x2– y 1+( )2– 10 x5--- x3– y5–

e x2– y2––13---e x 1+( )2– y2––=

−3 −2 −1 0 1 2 3−3

−2

−1

0

1

2

3

x

y

3 (1−x)2 exp(−(x2) − (y+1)2)− ~~~ x2−y2)− 1/3 exp(−(x+1)2 − y2)

462

Page 510: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezcontourf

See Also contourf, ezcontour, ezmesh, ezmeshc, ezplot, ezplot3, ezpolar, ezsurf,ezsurfc

463

Page 511: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezmesh

1ezmeshPurpose Easy to use 3-D mesh plotter

Syntax ezmesh(f)ezmesh(f,domain)ezmesh(x,y,z)ezmesh(x,y,z,[smin,smax,tmin,tmax]) or ezmesh(x,y,z,[min,max])ezmesh(...,n)ezmesh(...,'circ')

Description ezmesh(f) creates a graph of f(x,y), where f is a string that represents amathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2π < x < 2π, -2π < y < 2π.MATLAB chooses the computational grid according to the amount of variationthat occurs; if the function f is not defined (singular) for points on the grid, thenthese points are not plotted.

ezmesh(f,domain) plots f over the specified domain. domain can be either a4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max] (where,min < x < max, min < y < max).

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezmesh('u^2 - v^3',[0,1],[3,6]) plots u2 - v3 over 0 < u < 1, 3 < v < 6.

ezmesh(x,y,z) plots the parametric surface x = x(s,t), y = y(s,t), and z = z(s,t)over the square: -2π < s < 2π, -2π < t < 2π.

ezmesh(x,y,z,[smin,smax,tmin,tmax]) or ezmesh(x,y,z,[min,max]) plotsthe parametric surface using the specified domain.

ezmesh(...,n) plots f over the default domain using an n-by-n grid. Thedefault value for n is 60.

ezmesh(...,'circ') plots f over a disk centered on the domain.

Remarks rotate3d is always on. To rotate the graph, click and drag with the mouse.

Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezmesh. For example, the MATLAB syntax for a meshplot of the expression,

464

Page 512: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezmesh

sqrt(x.^2 + y.^2);

is written as:

ezmesh('sqrt(x^2 + y^2)')

That is, x^2 is interpreted as x.^2 in the string you pass to ezmesh.

Examples This example visualizes the function,

with a mesh plot drawn on a 40-by-40 grid. The mesh lines are set to a uniformblue color by setting the colormap to a single color:

ezmesh('x*exp(-x^2-y^2)',40)colormap [0 0 1]

See Also ezcontour, ezcontourf, ezmeshc, ezplot, ezplot3, ezpolar, ezsurf, ezsurfc,mesh

f x y,( ) xe x– 2 y2–=

−20

2

−2−1

01

2

−0.5

0

0.5

x

x exp(−x2 − y2)

y

465

Page 513: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezmeshc

1ezmeshcPurpose Easy to use combination mesh/contour plotter

Syntax ezmeshc(f)ezmeshc(f,domain)ezmeshc(x,y,z)ezmeshc(x,y,z,[smin,smax,tmin,tmax]) or ezmeshc(x,y,z,[min,max])ezmeshc(...,n)ezmeshc(...,'circ')

Description ezmeshc(f) creates a graph of f(x,y), where f is a string that represents amathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2π < x < 2π, -2π < y < 2π.MATLAB chooses the computational grid according to the amount of variationthat occurs; if the function f is not defined (singular) for points on the grid, thenthese points are not plotted.

ezmeshc(f,domain) plots f over the specified domain. domain can be either a4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max] (where,min < x < max, min < y < max).

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezmeshc('u^2 - v^3',[0,1],[3,6]) plots u2 - v3 over 0 < u < 1, 3 < v < 6.

ezmeshc(x,y,z) plots the parametric surface x = x(s,t), y = y(s,t), and z = z(s,t)over the square: -2π < s < 2π, -2π < t < 2π.

ezmeshc(x,y,z,[smin,smax,tmin,tmax]) or ezmeshc(x,y,z,[min,max])plots the parametric surface using the specified domain.

ezmeshc(...,n) plots f over the default domain using an n-by-n grid. Thedefault value for n is 60.

ezmeshc(...,'circ') plots f over a disk centered on the domain.

Remarks rotate3d is always on. To rotate the graph, click and drag with the mouse.

Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezmeshc. For example, the MATLAB syntax for a mesh/contour plot of the expression,

466

Page 514: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezmeshc

sqrt(x.^2 + y.^2);

is written as:

ezmeshc('sqrt(x^2 + y^2)')

That is, x^2 is interpreted as x.^2 in the string you pass to ezmeshc.

Examples Create a mesh/contour graph of the expression,

over the domain -5 < x < 5, -2*pi < y < 2*pi:

ezmeshc('y/(1 + x^2 + y^2)',[−5,5,−2*pi,2*pi])

Use the mouse to rotate the axes to better observe the contour lines (thispicture uses a view of azimuth = -65.5 and elevation = 26).

See Also ezcontour, ezcontourf, ezmesh, ezplot, ezplot3, ezpolar, ezsurf, ezsurfc,meshc

f x y,( ) y

1 x2 y2+ +

----------------------------=

−5

0

5

−50

5−0.5

0

0.5

x

y/(1 + x2 + y2)

y

467

Page 515: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezplot

1ezplotPurpose Easy to use function plotter

Syntax ezplot(f)ezplot(f,[min,max])ezplot(f,[xmin,xmax,ymin,ymax])ezplot(x,y)ezplot(x,y,[tmin,tmax])ezplot(...,figure)

Description ezplot(f) plots the expression f = f(x) over the default domain: -2π < x < 2π.

ezplot(f,[min,max]) plots f = f(x) over the domain: min < x < max.

For implicitly defined functions, f = f(x,y):

ezplot(f) plots f(x,y) = 0 over the default domain -2π < x < 2π, -2π < y < 2π.

ezplot(f,[xmin,xmax,ymin,ymax]) plots f(x,y) = 0 over xmin < x < xmax andymin < y < ymax.

ezplot(f,[min,max])plots f(x,y) = 0 over min < x < max and min < y < max.

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezplot('u^2 - v^2 - 1',[-3,2,-2,3]) plots u2 - v2 - 1 = 0 over -3 < u < 2, -2< v < 3.

ezplot(x,y) plots the parametrically defined planar curve x = x(t) and y = y(t)over the default domain 0 < t < 2π.

ezplot(x,y,[tmin,tmax]) plots x = x(t) and y = y(t) over tmin < t < tmax.

ezplot(...,figure) plots the given function over the specified domain in thefigure window identified by the handle figure.

Remarks Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezplot. For example, the MATLAB syntax for a plot ofthe expression,

x.^2 - y.^2

which represents an implicitly defined function, is written as:

ezplot('x^2 - y^2')

468

Page 516: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezplot

That is, x^2 is interpreted as x.^2 in the string you pass to ezplot.

Examples This example plots the implicitly defined function,

x2 - y4 = 0

over the domain [-2π, 2π]:

ezplot('x^2-y^4')

See Also ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot3, ezpolar, ezsurf, ezsurfc,plot

−6 −4 −2 0 2 4 6

−6

−4

−2

0

2

4

6

x

y

x2−y4 = 0

469

Page 517: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezplot3

1ezplot3Purpose Easy to use 3-D parametric curve plotter

Syntax ezplot3(x,y,z)ezplot3(x,y,z,[tmin,tmax])ezplot3(...,'animate')

Description ezplot3(x,y,z) plots the spatial curve x = x(t), y = y(t), and z = z(t) over thedefault domain 0 < t < 2π.

ezplot3(x,y,z,[tmin,tmax]) plots the curve x = x(t), y = y(t), and z = z(t) overthe domain tmin < t < tmax.

ezplot3(...,'animate') produces an animated trace of the spatial curve.

Remarks Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezplot3. For example, the MATLAB syntax for a plot ofthe expression,

x = s./2, y = 2.*s, z = s.^2;

which represents a parametric function, is written as:

ezplot3('s/2','2*s','s^2')

That is, s/2 is interpreted as s./2 in the string you pass to ezplot3.

Examples This example plots the parametric curve,

over the domain [0,6π]:

ezplot3('sin(t)','cos(t)','t',[0,6*pi])

x t y t z t=,cos=,sin=

470

Page 518: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezplot3

See Also ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot, ezpolar, ezsurf, ezsurfc,plot3

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

5

10

15

20

x

x = sin(t), y = cos(t), z = t

y

z

471

Page 519: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezpolar

1ezpolarPurpose Easy to use polar coordinate plotter

Syntax ezpolar(f)ezpolar(f,[a,b])

Description ezpolar(f) plots the polar curve rho = f(theta) over the default domain 0 <theta < 2π.

ezpolar(f,[a,b]) plots f for a < theta < b.

Examples This example creates a polar plot of the function,

1 + cos(t)

over the domain [0, 2π]:

ezpolar('1+cos(t)')

See Also ezplot, ezplot3, ezsurf, plot, plot3, polar

0.5

1

1.5

2

30

210

60

240

90

270

120

300

150

330

180 0

r = 1+cos(t)

472

Page 520: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezsurf

1ezsurfPurpose Easy to use 3-D colored surface plotter

Syntax ezsurf(f)ezsurf(f,domain)ezsurf(x,y,z)ezsurf(x,y,z,[smin,smax,tmin,tmax]) or ezsurf(x,y,z,[min,max])ezsurf(...,n)ezsurf(...,'circ')

Description ezsurf(f) creates a graph of f(x,y), where f is a string that represents amathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2π < x < 2π, -2π < y < 2π.MATLAB chooses the computational grid according to the amount of variationthat occurs; if the function f is not defined (singular) for points on the grid, thenthese points are not plotted.

ezsurf(f,domain) plots f over the specified domain. domain can be either a4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max] (where,min < x < max, min < y < max).

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezsurf('u^2 - v^3',[0,1],[3,6]) plots u2 - v3 over 0 < u < 1, 3 < v < 6.

ezsurf(x,y,z) plots the parametric surface x = x(s,t), y = y(s,t), and z = z(s,t)over the square: -2π < s < 2π, -2π < t < 2π.

ezsurf(x,y,z,[smin,smax,tmin,tmax]) or ezsurf(x,y,z,[min,max]) plotsthe parametric surface using the specified domain.

ezsurf(...,n) plots f over the default domain using an n-by-n grid. Thedefault value for n is 60.

ezsurf(...,'circ') plots f over a disk centered on the domain.

Remarks rotate3d is always on. To rotate the graph, click and drag with the mouse.

Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezsurf. For example, the MATLAB syntax for a surfaceplot of the expression,

473

Page 521: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezsurf

sqrt(x.^2 + y.^2);

is written as:

ezsurf('sqrt(x^2 + y^2)')

That is, x^2 is interpreted as x.^2 in the string you pass to ezsurf.

Examples ezsurf does not graph points where the mathematical function is not defined(these data points are set to NaNs, which MATLAB does not plot). This exampleillustrates this filtering of singularities/discontinuous points by graphing thefunction,

over the default domain -2π < x < 2π, -2π < y < 2π:

ezsurf('real(atan(x+i*y))')

Using surf to plot the same data produces a graph without filtering ofdiscontinuities (as well as requiring more steps):

[x,y] = meshgrid(linspace(-2*pi,2*pi,60));z = real(atan(x+i.*y));

f x y,( ) x iy+( )atan( )real=

−5

0

5

−5

0

5

−2

−1

0

1

2

x

real(atan(x+i y))

y

474

Page 522: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezsurf

surf(x,y,z)

Note also that ezsurf creates graphs that have axis labels, a title, and extendto the axis limits.

See Also ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot, ezpolar, ezsurfc, surf

−10−5

05

10

−10−5

05

10−2

−1

0

1

2

475

Page 523: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezsurfc

1ezsurfcPurpose Easy to use combination surface/contour plotter

Syntax ezsurfc(f)ezsurfc(f,domain)ezsurfc(x,y,z)ezsurfc(x,y,z,[smin,smax,tmin,tmax]) or ezsurfc(x,y,z,[min,max])ezsurfc(...,n)ezsurfc(...,'circ')

Description ezsurfc(f) creates a graph of f(x,y), where f is a string that represents amathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2π < x < 2π, -2π < y < 2π.MATLAB chooses the computational grid according to the amount of variationthat occurs; if the function f is not defined (singular) for points on the grid, thenthese points are not plotted.

ezsurfc(f,domain) plots f over the specified domain. domain can be either a4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max] (where,min < x < max, min < y < max).

If f is a function of the variables u and v (rather than x and y), then the domainendpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus,ezsurfc('u^2 - v^3',[0,1],[3,6]) plots u2 - v3 over 0 < u < 1, 3 < v < 6.

ezsurfc(x,y,z) plots the parametric surface x = x(s,t), y = y(s,t), and z = z(s,t)over the square: -2π < s < 2π, -2π < t < 2π.

ezsurfc(x,y,z,[smin,smax,tmin,tmax]) or ezsurfc(x,y,z,[min,max])plots the parametric surface using the specified domain.

ezsurfc(...,n) plots f over the default domain using an n-by-n grid. Thedefault value for n is 60.

ezsurfc(...,'circ') plots f over a disk centered on the domain.

Remarks rotate3d is always on. To rotate the graph, click and drag with the mouse.

Array multiplication, division, and exponentiation are always implied in theexpression you pass to ezsurfc. For example, the MATLAB syntax for asurface/contour plot of the experssion,

476

Page 524: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezsurfc

sqrt(x.^2 + y.^2);

is written as:

ezsurfc('sqrt(x^2 + y^2)')

That is, x^2 is interpreted as x.^2 in the string you pass to ezsurfc.

Examples Create a surface/contour plot of the expression,

over the domain -5 < x < 5, -2*pi < y < 2*pi, with a computational grid of size35-by-35:

ezsurfc('y/(1 + x^2 + y^2)',[−5,5,−2*pi,2*pi],35)

Use the mouse to rotate the axes to better observe the contour lines (thispicture uses a view of azimuth = -65.5 and elevation = 26)

f x y,( ) y

1 x2 y2+ +

----------------------------=

−5

0

5

−50

5−0.5

0

0.5

x

y/(1 + x2 + y2)

y

477

Page 525: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

ezsurfc

See Also ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot, ezpolar, ezsurf, surfc

478

Page 526: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

Symbols 227- 28' 28* 28+ 28.avi 43/ 28: 248\ 28^ 28

Aaccuracy

of linear equation solution 267of matrix inversion 267relative floating-point 434

acos 4acosh 4acot 5acoth 5acsc 6acsch 6addframe

AVI files 8addition (arithmetic operator) 28addpath 10addressing selected array elements 248adjacency graph 399airy 12ALim, Axes property 61all 15AmbientLightColor, Axes property 61AND, logical

bit-wise 125angle 22

ans 23any 24arccosecant 6arccosine 4arccotangent 5arcsecant 35arcsine 36arctangent 39

(four-quadrant) 40area 26arithmetic operations, matrix and array

distinguished 28arithmetic operators

reference 28array

addressing selected elements of 248displaying 393left division (arithmetic operator) 29multiplication (arithmetic operator) 28power (arithmetic operator) 29right division (arithmetic operator) 29transpose (arithmetic operator) 29

arraysmaximum size of 266

arrowhead matrix 259ASCII

delimited fileswriting 398

ASCII dataprintable characters (list of) 200reading 397

asech 35asin 36asinh 36aspect ratio of axes 319assignin 37

I-1

Page 527: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

atan2 40.au files

reading 41writing 42

audiosaving in AVI format 43

auwrite 42avifile 43aviinfo 46aviread 48Axes

creating 49defining default properties 53fixed-width font 70property descriptions 61

axessetting and querying data aspect ratio 319

axes 49axis 82

Bbalance 88bar 91bar3 95bar3h 95barh 91base to decimal conversion 99base two operations

conversion from decimal to binary 362base2dec 99beep 100Bessel functions 101, 106

first kind 103modified 103second kind 104third kind 107

Bessel’s equation(defined) 101, 106modified (defined) 103

besselh 101besseli 103besselj 106besselk 103bessely 106beta 109beta function

(defined) 109incomplete (defined) 109natural logarithm of 109

betainc 109betaln 109bicg 111bicgstab 119bin2dec 124binary to decimal conversion 124bitand 125bitcmp 126bitget 127bitmax 128bitor 129bitset 130bitshift 131bit-wise operations

AND 125get 127OR 129set bit 130shift 131XOR 132

bitxor 132blanks

removing trailing 360blanks 133

I-2

Page 528: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

blkdiag 134box 135Box, Axes property 62break 136breakpoints

listing 341removing 333resuming execution from 334setting in M-files 343

brighten 137builtin 138BusyAction

Axes property 62ButtonDownFcn

Axes property 62bvp4c 139bvpget 146bvpinit 147bvpset 149bvpval 151

Ccalendar 152camdolly 153camera

dollying position 153moving camera and target postions 153placing a light at 155positioning to view objects 157rotating around camera target 159, 161rotating around viewing axis 165setting and querying position 162setting and querying projection type 164setting and querying target 166setting and querying up vector 168setting and querying view angle 170

CameraPosition, Axes property 63CameraPositionMode, Axes property 63CameraTarget, Axes property 63CameraTargetMode, Axes property 63CameraUpVector, Axes property 63CameraUpVectorMode, Axes property 63CameraViewAngle, Axes property 64CameraViewAngleMode, Axes property 64camlight 155camlookat 157camorbit 159campan 161campos 162camproj 164camroll 165camtarget 166camup 168camva 170camzoom 172capture 173cart2pol 174cart2sph 176Cartesian coordinates 174, 176case 177cat 178catch 179caxis 180cd 184cdf2rdf 185ceil 187cell array

creating 188structure of, displaying 194

cell2struct 190celldisp 191cellfun 192cellplot 194

I-3

Page 529: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

cgs 196char 200checkin 202

examples 203options 202

checkout 204examples 205options 204

Children

Axes property 65chol 207Cholesky factorization 207

(as algorithm for solving linear equations) 32preordering for 259

cholinc 209cholinc 209cholupdate 217cla 220clabel 221class 223clc 225, 231clear 226clear

serial port I/O 230clearing

Command Window 225items from workspace 226Java import list 227

clf 231CLim, Axes property 65CLimMode, Axes property 65clipboard 232Clipping

Axes property 65clock 233close 234

AVI files 47, 236

closest point search 409cmopts 238

modifying for PVCS 238colamd 240colmmd 242Color

Axes property 66colorbar 250colormap 253ColorOrder, Axes property 66ColorSpec 257colperm 259comet 260comet3 261Command Window

clearing 225compan 262companion matrix 262compass 263complementary error function

(defined) 435scaled (defined) 435

complete elliptic integral(defined) 426modulus of 424, 426

complexexponential (defined) 453phase angle 22

complex 265complex conjugate 275

sorting pairs of 304complex data

creating 265computer 266computer MATLAB is running on 266concatenating arrays 178cond 267

I-4

Page 530: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

condeig 268condest 269condition number of matrix 88, 267coneplot 270conj 275conjugate, complex 275

sorting pairs of 304continue 276contour

and mesh plot 466filled plot 461functions 458of mathematical expression 458with surface plot 476

contour 277contour3 281contourc 283contourf 285contours

in slice planes 287contourslice 287contrast 290conv 291conv2 292conversion

base to decimal 99binary to decimal 124Cartesian to cylindrical 174Cartesian to polar 174complex diagonal to real block diagonal 185decimal number to base 358, 361decimal to binary 362decimal to hexadecimal 363string matrix to cell array 195vector to character string 200

convhull 294convhulln 295

convn 296convolution 291

inverse See deconvolutiontwo-dimensional 292

coordinatesCartesian 174, 176cylindrical 174, 176polar 174, 176See also conversion

copyfile 297copyobj 298corrcoef 300cos 301cosecant 307

hyperbolic 307inverse 6inverse hyperbolic 6

cosh 301cosine 301

hyperbolic 301inverse 4inverse hyperbolic 4

cot 302cotangent 302

hyperbolic 302inverse 5inverse hyperbolic 5

coth 302cov 303cplxpair 304cputime 305CreateFcn

Axes property 66cross 306cross product 306csc 307csch 307

I-5

Page 531: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

ctranspose (M-file function equivalent for ') 30cumprod 308cumsum 309cumtrapz 310cumulative

product 308sum 309

curl 312current directory

changing 184CurrentPoint

Axes property 66customverctrl 315cylinder 316cylindrical coordinates 174, 176

Ddaspect 319data aspect ratio of axes 319data types

complex 265DataAspectRatio, Axes property 67DataAspectRatioMode, Axes property 69date 322date and time functions 433date string

format of 325date vector 331datenum 323datestr 325datevec 331dbclear 333dbcont 334dbdown 335dbmex 338dbquit 339

dbstack 340dbstatus 341dbstep 342dbstop 343dbtype 346dbup 347ddeadv 348ddeexec 350ddeinit 351ddepoke 352ddereq 354ddeterm 356ddeunadv 357deal 358deblank 360debugging

changing workspace context 335changing workspace to calling M-file 347displaying function call stack 340MEX-files on UNIX 338quitting debug mode 339removing breakpoints 333resuming execution from breakpoint 342setting breakpoints in 343stepping through lines 342

dec2base 358, 361dec2bin 362dec2hex 363decimal number to base conversion 358, 361decimal point (.)

to distinguish matrix and array operations 28decomposition

Dulmage-Mendelsohn 399deconv 364deconvolution 364default tolerance 434default4 365

I-6

Page 532: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

del operator 366del2 366delaunay 369delaunay3 372delaunayn 374delete 376delete

serial port I/O 377DeleteFcn

Axes property 69deleting

files 376items from workspace 226

delimiters in ASCII files 397, 398depdir 378depfun 379derivative

approximate 389det 383determinant of a matrix 383detrend 384diag 386diagonal 386

main 386dialog 387dialog box

error 440diary 388diff 389differences

between adjacent array elements 389differential equation solvers

ODE boundary value problems 139adjusting parameters of 149extracting properties of 146, 443, 444forming an initial guess 147

dir 391

directoriesadding to search path 10checking existence of 450listing contents of 391See also directory, search path

directorySee also directories

directory, changing 184discontinuities, plotting functions with 474disp 393disp

serial port I/O 394distribution

Gaussian 435division

array, left (arithmetic operator) 29array, right (arithmetic operator) 29matrix, left (arithmetic operator) 29matrix, right (arithmetic operator) 28of polynomials 364

dlmread 397dlmwrite 398dmperm 399doc 400docopt 401documentation

location of files for UNIX 401dolly camera 153dot 404dot product 306, 404double 405dragrect 406DrawMode, Axes property 69drawnow 407dsearch 408dsearchn 409Dulmage-Mendelsohn decomposition 399

I-7

Page 533: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

Eecho 410edge finding, Sobel technique 292editing

M-files 411eig 412eigensystem

transforming 185eigenvalue

accuracy of 88, 412complex 185of companion matrix 262poorly conditioned 88problem 413problem, generalized 413repeated 413

eigenvectorleft 413right 413

eigs 416ellipj 424ellipke 426elliptic functions, Jacobian

(defined) 424elliptic integral

complete (defined) 426modulus of 424, 426

else 428elseif 429end 431eomday 433eps 434equations, linear

accuracy of solution 267erf 435erfc 435erfcx 435

error 437error function

(defined) 435complementary 435scaled complementary 435

error messagedisplaying 437

errorbar 438errordlg 440etime 442etree 443etreeplot 444eval 445evalc 447evalin 448examples

contouring mathematical expressions 458mesh plot of mathematical function 465mesh/contour plot 467plotting filled contours 461plotting function of two variables 469plotting parametric curves 470polar plot of function 472surface plot of mathematical function 474surface/contour plot 477

executionresuming from breakpoint 334

exist 450exit 452exp 453expint 454expm 455exponential 453

complex (defined) 453integral 454matrix 455

exponentiation

I-8

Page 534: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

array (arithmetic operator) 29matrix (arithmetic operator) 29

eye 457ezcontour 458ezcontourf 461ezmesh 464ezmeshc 466ezplot 468ezplot3 470ezpolar 472ezsurf 473ezsurfc 476

Ffactorization, Cholesky 207

(as algorithm for solving linear equations) 32preordering for 259

Figuresupdating from M-file 407

filesASCII delimited

reading 397writing 398

checking existence of 450copying 297deleting 376listing

names in a directory 391sound

reading 41writing 42, 43

Xdefaults 449filter

two-dimensional 292fixed-width font

axes 70

flint See floating-point, integerfloating-point

integer 126, 130integer, maximum 128numbers, interval between 434

flow controlbreak 136case 177else 428elseif 429end 431error 437

fontfixed-width, axes 70

FontAngle

Axes property 69FontName

Axes property 70FontSize

Axes property 70FontUnits

Axes property 70FontWeight

Axes property 71Fourier transform

convolution theorem and 291functions

call stack for 340checking existence of 450clearing from workspace 226

GGaussian distribution function 435Gaussian elimination

(as algorithm for solving linear equations) 33generalized eigenvalue problem 413

I-9

Page 535: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

generating a sequence of matrix names (M1through M12) 445

global variables, clearing from workspace 226graph

adjacency 399graphics objects

Axes 49graphics objects, deleting 376GridLineStyle, Axes property 71

HHandleVisibility

Axes property 71Hankel functions, relationship to Bessel of 107help

files, location for UNIX 401Help browser

accessing from doc 400HitTest

Axes property 72Householder reflections (as algorithm for solving

linear equations) 33hyperbolic

cosecant 307cosecant, inverse 6cosine 301cosine, inverse 4cotangent 302cotangent, inverse 5secant 35secant, inverse 35sine 36sine, inverse 36tangent 39tangent, inverse 39

Iidentity matrix 457incomplete

beta function (defined) 109inheritance, of objects 223, 224integer

floating-point 126, 130floating-point, maximum 128

Interruptible

Axes property 72inverse

cosecant 6cosine 4cotangent 5four-quadrant tangent 40hyperbolic cosecant 6hyperbolic cosine 4hyperbolic cotangent 5hyperbolic secant 35hyperbolic sine 36hyperbolic tangent 39secant 35sine 36tangent 39

inversion, matrixaccuracy of 267

JJacobian elliptic functions

(defined) 424Java import list

clearing 227joining arrays See concatenating arrays

I-10

Page 536: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

Llabeling

matrix columns 393Laplacian 366Layer, Axes property 72ldivide (M-file function equivalent for .\) 30Light

positioning in camera coordinates 155line numbers in M-files 346linear equation systems

accuracy of solution 267linear equation systems, methods for solving

Cholesky factorization 32Gaussian elimination 33Householder reflections 33

LineStyleOrder

Axes property 73LineWidth

Axes property 73Lobatto IIIa ODE solver 145log

saving session to file 388logarithm

of beta function (natural) 109logical operations

AND, bit-wise 125OR, bit-wise 129XOR, bit-wise 132

logical testsall 15any 24

Mmatrix

addressing selected rows and columns of 248arrowhead 259

companion 262condition number of 88, 267converting to vector 248defective (defined) 414determinant of 383diagonal of 386Dulmage-Mendelsohn decomposition of 399exponential 455identity 457inversion, accuracy of 267left division (arithmetic operator) 29maximum size of 266modal 412multiplication (defined) 28power (arithmetic operator) 29reading files into 397right division (arithmetic operator) 28singularity, test for 383trace of 386transpose (arithmetic operator) 29writing to ASCII delimited file 398See also array

matrix names, (M1 through M12) generating asequence of 445

matrix power See matrix, exponentialMDL-files

checking existence of 450memory

clearing 226methods

inheritance of 223, 224MEX-files

clearing from workspace 226debugging on UNIX 338

M-filedisplaying during execution 410function file, echoing 410

I-11

Page 537: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

script file, echoing 410M-files

checking existence of 450clearing from workspace 226deleting 376editing 411line numbers, listing 346setting breakpoints 343

minus (M-file function equivalent for -) 30mldivide (M-file function equivalent for \) 30modal matrix 412movies

exporting in AVI format 43mpower (M-file function equivalent for ^) 30mrdivide (M-file function equivalent for /) 30mtimes (M-file function equivalent for *) 30multidimensional arrays

concatenating 178multiplication

array (arithmetic operator) 28matrix (defined) 28of polynomials 291

NNextPlot

Axes property 73numbers

complex 22

Oobject

inheritance 223, 224object classes, list of predefined 223online help

location of files for UNIX 401

operatorsarithmetic 28

logical ORbit-wise 129

orthographic projection, setting and querying164

PPadé approximation (of matrix exponential) 455parametric curve, plotting 470Parent

Axes property 74path

adding directories to 10pauses, removing 333period (.), to distinguish matrix and array

operations 28perspective projection, setting and querying 164P-files

checking existence of 450phase, complex 22platform MATLAB is running on 266PlotBoxAspectRatio, Axes property 74PlotBoxAspectRatioMode, Axes property 74plotting

contours (a 458contours (ez function) 458errorbars 438ez-function mesh plot 464filled contours 461functions with discontinuities 474in polar coordinates 472mathematical function 468mesh contour plot 466parametric curve 470surfaces 473

I-12

Page 538: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

velocity vectors 270plus (M-file function equivalent for +) 30polar coordinates 174, 176

plotting in 472polynomial

division 364multiplication 291

poorly conditionedeigenvalues 88

Position

Axes property 74position of camera

dollying 153position of camera, setting and querying 162power

matrix See matrix exponentialpower (M-file function equivalent for .^) 30product

cumulative 308of vectors (cross) 306scalar (dot) 306

projection type, setting and querying 164ProjectionType, Axes property 75

Rrdivide (M-file function equivalent for ./) 30rearranging arrays

converting to vector 248rearranging matrices

converting to vector 248reference page

accessing from doc 400regularly spaced vectors, creating 248relative accuracy

floating-point 434rolling camera 165

rotating camera 159rotating camera target 161round

towards infinity 187roundoff error

convolution theorem and 291effect on eigenvalues 88

Ssaving

session to a file 388scalar product (of vectors) 306scaled complementary error function (defined)

435search path

adding directories to 10secant, inverse 35secant, inverse hyperbolic 35Selected

Axes property 75SelectionHighlight

Axes property 75sequence of matrix names (M1 through M12)

generating 445session

saving 388sine, inverse 36sine, inverse hyperbolic 36slice planes, contouring 287sorting

complex conjugate pairs 304sound

filesreading 41writing 42

source control systems

I-13

Page 539: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

checking in files 202checking out files 204viewing current system 238

sparse matrixminimum degree ordering of 242permuting columns of 259

spreadsheetsreading into a matrix 397writing matrices into 398

stack, displaying 340str2cell 195stretch-to-fill 50string

converting from vector to 200string matrix to cell array conversion 195subtraction (arithmetic operator) 28sum

cumulative 309Surface

and contour plotter 476plotting mathematical functions 473

TTag

Axes property 75tangent (four-quadrant), inverse 40tangent, inverse 39tangent, inverse hyperbolic 39target, of camera 166Taylor series (matrix exponential approximation)

455test, logical See logical tests and detectingTickDir, Axes property 76TickDirMode, Axes property 76TickLength, Axes property 76time

CPU 305required to execute commands 442

time and date functions 433times (M-file function equivalent for .*) 30Title, Axes property 76tolerance, default 434trace of a matrix 386trailing blanks

removing 360transformation

See also conversiontranspose

array (arithmetic operator) 29matrix (arithmetic operator) 29

transpose (M-file function equivalent for .') 30Type

Axes property 77

UUIContextMenu

Axes property 77uminus (M-file function equivalent for unary –)

30Units

Axes property 77up vector, of camera 168updating figure during M-file execution 407uplus (M-file function equivalent for unary +) 30UserData

Axes property 77

Vvariables

checking existence of 450clearing from workspace 226

I-14

Page 540: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

vectordot product 404product (cross) 306

vector field, plotting 270vectors, creating

regularly spaced 248velocity vectors, plotting 270video

saving in AVI format 43view 157view angle, of camera 170View, Axes property (obsolete) 77viewing

a group of object 157a specific object in a scene 157

Visible

Axes property 78visualizing

cell array structure 194volumes

contouring slice planes 287

Wworkspace

changing context while debugging 335, 347clearing items from 226

XXAxisLocation, Axes property 78XColor, Axes property 78Xdefaults file 449XDir, Axes property 78XGrid, Axes property 79XLabel, Axes property 79XLim, Axes property 79

XLimMode, Axes property 79logical XOR

bit-wise 132XScale, Axes property 80XTick, Axes property 80XTickLabel, Axes property 80XTickLabelMode, Axes property 81XTickMode, Axes property 80

YYAxisLocation, Axes property 78YColor, Axes property 78YDir, Axes property 78YGrid, Axes property 79YLabel, Axes property 79YLim, Axes property 79YLimMode, Axes property 79YScale, Axes property 80YTick, Axes property 80YTickLabel, Axes property 80YTickLabelMode, Axes property 81YTickMode, Axes property 80

ZZColor, Axes property 78ZDir, Axes property 78ZGrid, Axes property 79ZLim, Axes property 79ZLimMode, Axes property 79ZScale, Axes property 80ZTick, Axes property 80ZTickLabel, Axes property 80ZTickLabelMode, Axes property 81ZTickMode, Axes property 80

I-15

Page 541: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-16

Page 542: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-17

Page 543: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-18

Page 544: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-19

Page 545: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-20

Page 546: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-21

Page 547: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-22

Page 548: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-23

Page 549: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-24

Page 550: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-25

Page 551: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-26

Page 552: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-27

Page 553: The Language of Technical Computingusers.metu.edu.tr/azulfu/courses/es361/refbook1.pdf · The Language of Technical Computing. How to Contact The MathWorks: 508-647-7000 Phone 508-647-7001

Index

I-28