MATLAB Programming © COPYRIGHT 1984 - 2005 by the Mathworks, Inc
Total Page:16
File Type:pdf, Size:1020Kb
MATLAB® The Language of Technical Computing Programming Version 7 How to Contact The MathWorks: www.mathworks.com Web comp.soft-sys.matlab Newsgroup [email protected] Technical support [email protected] Product enhancement suggestions [email protected] Bug reports [email protected] Documentation error reports [email protected] Order status, license renewals, passcodes [email protected] Sales, pricing, and general information 508-647-7000 Phone 508-647-7001 Fax The MathWorks, Inc. Mail 3 Apple Hill Drive Natick, MA 01760-2098 For contact information about worldwide offices, see the MathWorks Web site. MATLAB Programming © COPYRIGHT 1984 - 2005 by The MathWorks, Inc. The software described in this document is furnished under a license agreement. The software may be used or 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 by, for, or through the federal government of the United States. By accepting delivery of the Program or Documentation, the government hereby agrees that this software or documentation qualifies as commercial computer software or commercial computer software documentation as such terms are used or defined in FAR 12.212, DFARS Part 227.72, and DFARS 252.227-7014. Accordingly, the terms and conditions of this Agreement and only those rights specified in this Agreement, shall pertain to and govern the use, modification, reproduction, release, performance, display, and disclosure of the Program and Documentation by the federal government (or other entity acquiring for or through the federal government) and shall supersede any conflicting contractual terms or conditions. If this License fails to meet the government's needs or is inconsistent in any respect with federal procurement law, the government agrees to return the Program and Documentation, unused, to The MathWorks, Inc. MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, and xPC TargetBox are registered trademarks of The MathWorks, Inc. Other product or brand names are trademarks or registered trademarks of their respective holders. Revision History: June 2004 First printing New for MATLAB 7.0 (Release 14). Formerly part of Using MATLAB. October 2004 Online only Revised for MATLAB 7.0.1 (Release 14SP1) March 2005 Online only Revised for MATLAB 7.0.4 (Release 14SP2) Contents Data Structures 1 Creating and Concatenating Matrices . 1-3 Constructing a Simple Matrix . 1-4 Specialized Matrix Functions . 1-4 Concatenating Matrices . 1-7 Matrix Concatenation Functions . 1-8 Generating a Numeric Sequence . 1-10 Combining Unlike Data Types . 1-11 Matrix Indexing . 1-17 Accessing Single Elements . 1-17 Linear Indexing . 1-18 Functions That Control Indexing Style . 1-19 Accessing Multiple Elements . 1-19 Logical Indexing . 1-21 Indexing on Assignment . 1-22 Getting Information About a Matrix . 1-23 Dimensions of the Matrix . 1-23 Data Types Used in the Matrix . 1-24 Data Structures Used in the Matrix . 1-25 Resizing and Reshaping Matrices . 1-26 Expanding the Size of a Matrix . 1-26 Diminishing the Size of a Matrix . 1-30 Reshaping a Matrix . 1-31 Preallocating Memory . 1-33 Shifting and Sorting Matrices . 1-35 Shift and Sort Functions . 1-35 Shifting the Location of Matrix Elements . 1-35 Sorting the Data in Each Column . 1-37 Sorting the Data in Each Row . 1-37 Sorting Row Vectors . 1-38 i Operating on Diagonal Matrices . 1-39 Constructing a Matrix from a Diagonal Vector . 1-39 Returning a Triangular Portion of a Matrix . 1-40 Concatenating Matrices Diagonally . 1-40 Empty Matrices, Scalars, and Vectors . 1-41 The Empty Matrix . 1-41 Scalars . 1-44 Vectors . 1-44 Full and Sparse Matrices . 1-46 Sparse Matrix Functions . 1-46 Multidimensional Arrays . 1-48 Overview . 1-48 Creating Multidimensional Arrays . 1-50 Accessing Multidimensional Array Properties . 1-54 Indexing Multidimensional Arrays . 1-54 Reshaping Multidimensional Arrays . 1-58 Permuting Array Dimensions . 1-60 Computing with Multidimensional Arrays . 1-62 Organizing Data in Multidimensional Arrays . 1-64 Multidimensional Cell Arrays . 1-66 Multidimensional Structure Arrays . 1-67 Summary of Matrix and Array Functions . 1-69 Data Types 2 Overview of MATLAB Data Types . 2-2 Numeric Types . 2-4 Integers . 2-4 Floating-Point Numbers . 2-6 Complex Numbers . 2-11 Infinity and NaN . 2-12 ii Contents Identifying Numeric Types . 2-14 Display Format for Numeric Values . 2-14 Function Summary . 2-16 Logical Types . 2-20 Creating a Logical Array . 2-20 How Logical Arrays Are Used . 2-22 Identifying Logical Arrays . 2-24 Characters and Strings . 2-25 Creating Character Arrays . 2-25 Cell Arrays of Strings . 2-27 String Comparisons . 2-30 Searching and Replacing . 2-33 Converting from Numeric to String . 2-34 Converting from String to Numeric . 2-36 Function Summary . 2-38 Dates and Times . 2-41 Types of Date Formats . 2-41 Conversions Between Date Formats . 2-43 Date String Formats . 2-44 Output Formats . 2-44 Current Date and Time . 2-46 Function Summary . 2-47 Structures . 2-49 Building Structure Arrays . 2-50 Accessing Data in Structure Arrays . 2-53 Using Dynamic Field Names . 2-54 Finding the Size of Structure Arrays . 2-55 Adding Fields to Structures . 2-56 Deleting Fields from Structures . 2-56 Applying Functions and Operators . 2-56 Writing Functions to Operate on Structures . 2-57 Organizing Data in Structure Arrays . 2-59 Nesting Structures . 2-63 Function Summary . 2-65 iii Cell Arrays . 2-66 Creating Cell Arrays . 2-67 Obtaining Data from Cell Arrays . 2-70 Deleting Cells . 2-72 Reshaping Cell Arrays . 2-72 Replacing Lists of Variables with Cell Arrays . 2-72 Applying Functions and Operators . 2-74 Organizing Data in Cell Arrays . 2-75 Nesting Cell Arrays . 2-76 Converting Between Cell and Numeric Arrays . 2-78 Cell Arrays of.