logo资料库

MATLAB经典教材.pdf

第1页 / 共592页
第2页 / 共592页
第3页 / 共592页
第4页 / 共592页
第5页 / 共592页
第6页 / 共592页
第7页 / 共592页
第8页 / 共592页
资料共592页,剩余部分请下载后查看
Front Cover
Title Page
Copyright
Contents
Chapter 1 Introduction to MATLAB
1.1 The Advantages of MATLAB
1.2 Disadvantages of MATLAB
1.3 The MATLAB Environment
1.3.1 The MATLAB Desktop
1.3.2 The Command Window
1.3.3 The Command History Window
1.3.4 The Start Button
1.3.5 The Edit/Debug Window
1.3.6 Figure Windows
1.3.7 Docking and Undocking Windows
1.3.8 The MATLAB Workspace
1.3.9 The Workspace Browser
1.3.10 Getting Help
1.3.11 A Few Important Commands
1.3.12 The MATLAB Search Path
1.4 Using MATLAB as a Scratch Pad
1.5 Summary
1.5.1 MATLAB Summary
1.6 Exercises
Chapter 2 MATLAB Basics
2.1 Variables and Arrays
2.2 Initializing Variables in MATLAB
2.2.1 Initializing Variables in Assignment Statements
2.2.2 Initializing with Shortcut Expressions
2.2.3 Initializing with Built-in Functions
2.2.4 Initializing Variables with Keyboard Input
2.3 Multidimensional Arrays
2.3.1 Storing Multidimensional Arrays in Memory
2.3.2 Accessing Multidimensional Arrays with One Dimension
2.4 Subarrays
2.4.1 The end Function
2.4.2 Using Subarrays on the Left-hand Side of an Assignment Statement
2.4.3 Assigning a Scalar to a Subarray
2.5 Special Values
2.6 Displaying Output Data
2.6.1 Changing the Default Format
2.6.2 The disp function
2.6.3 Formatted Output with the fprintf Function
2.7 Data Files
2.8 Scalar and Array Operations
2.8.1 Scalar Operations
2.8.2 Array and Matrix Operations
2.9 Hierarchy of Operations
2.10 Built-in MATLAB Functions
2.10.1 Optional Results
2.10.2 Using MATLAB Functions with Array Inputs
2.10.3 Common MATLAB Functions
2.11 Introduction to Plotting
2.11.1 Using Simple xy Plots
2.11.2 Printing a Plot
2.11.3 Exporting a Plot as a Graphical Image
2.11.4 Multiple Plots
2.11.5 Line Color, Line Style, Marker Style, and Legends
2.11.6 Logarithmic Scales
2.12 Examples
2.13 Debugging MATLAB Programs
2.14 Summary
2.14.1 Summary of Good Programming Practice
2.14.2 MATLAB Summary
2.15 Exercises
Chapter 3 Branching Statements and Program Design
3.1 Introduction to Top-Down Design Techniques
3.2 Use of Pseudocode
3.3 The Logical Data Type
3.3.1 Relational Operators
3.3.2 A Caution About the == and ~= Operators
3.3.3 Logic Operators
3.3.4 Logical Functions
3.4 Branches
3.4.1 The if Construct
3.4.2 Examples Using if Constructs
3.4.3 Notes Concerning the Use of if Constructs
3.4.4 The switch Construct
3.4.5 The try/catch Construct
3.5 Additional Plotting Features
3.5.1 Controlling x- and y-axis Plotting Limits
3.5.2 Plotting Multiple Plots on the Same Axes
3.5.3 Creating Multiple Figures
3.5.4 Subplots
3.5.5 Enhanced Control of Plotted Lines
3.5.6 Enhanced Control of Text Strings
3.5.7 Polar Plots
3.5.8 Annotating and Saving Plots
3.6 More on Debugging MATLAB Programs
3.7 Summary
3.7.1 Summary of Good Programming Practice
3.7.2 MATLAB Summary
3.8 Exercises
Chapter 4 Loops
4.1 The while Loop
4.2 The for Loop
4.2.1 Details of Operation
4.2.2 The MATLAB Just-in-Time (JIT) Compiler
4.2.3 The break and continue Statements
4.2.4 Nesting Loops
4.3 Logical Arrays and Vectorization
4.3.1 Creating the Equivalent of if/else Constructs with Logical Arrays
4.4 The MATLAB Profiler
4.5 Additional Examples
4.6 Summary
4.6.1 Summary of Good Programming Practice
4.6.2 MATLAB Summary
4.7 Exercises
Chapter 5 User-Defined Functions
5.1 Introduction to MATLAB Functions
5.2 Variable Passing in MATLAB: The Pass-by-Value Scheme
5.3 Optional Arguments
5.4 Sharing Data Using Global Memory
5.5 Preserving Data Between Calls to a Function
5.6 Function Functions
5.7 Subfunctions, Private Functions, and Nested Functions
5.7.1 Subfunctions
5.7.2 Private Functions
5.7.3 Nested Functions
5.7.4 Order of Function Evaluation
5.8 Summary
5.8.1 Summary of Good Programming Practice
5.8.2 MATLAB Summary
5.9 Exercises
Chapter 6 Additional Data Types and Plot Types
6.1 Complex Data
6.1.1 Complex Variables
6.1.2 Using Complex Numbers with Relational Operators
6.1.3 Complex Functions
6.1.4 Plotting Complex Data
6.2 String Functions
6.2.1 String Conversion Functions
6.2.2 Creating Two-Dimensional Character Arrays
6.2.3 Concatenating Strings
6.2.4 Comparing Strings
6.2.5 Searching/Replacing Characters within a String
6.2.6 Uppercase and Lowercase Conversion
6.2.7 Trimming Whitespace from Strings
6.2.8 Numeric-to-String Conversions
6.2.9 String-to-Numeric Conversions
6.2.10 Summary
6.3 Multidimensional Arrays
6.4 Additional Data Types
6.4.1 The single Data Type
6.4.2 Integer Data Types
6.4.3 Limitations of the single and Integer Data Types
6.5 Additional Two-Dimensional Plots
6.5.1 Additional Types of Two-Dimensional Plots
6.5.2 Plotting Functions
6.5.3 Histograms
6.6 Three-Dimensional Plots
6.6.1 Three-Dimensional Line Plots
6.6.2 Three-Dimensional Surface, Mesh, and Contour Plots
6.7 Summary
6.7.1 Summary of Good Programming Practice
6.7.2 MATLAB Summary
6.8 Exercises
Chapter 7 Advanced Features: Sparse Arrays, Cell Arrays, Structures, and Function Handles
7.1 Sparse Arrays
7.1.1 The sparse Attribute
7.2 Cell Arrays
7.2.1 Creating Cell Arrays
7.2.2 Using Braces {} as Cell Constructors
7.2.3 Viewing the Contents of Cell Arrays
7.2.4 Extending Cell Arrays
7.2.5 Deleting Cells in Arrays
7.2.6 Using Data in Cell Arrays
7.2.7 Cell Arrays of Strings
7.2.8 The Significance of Cell Arrays
7.2.9 Summary of cell Functions
7.3 Structure Arrays
7.3.1 Creating Structure Arrays
7.3.2 Adding Fields to Structures
7.3.3 Removing Fields from Structures
7.3.4 Using Data in Structure Arrays
7.3.5 The getfield and setfield Functions
7.3.6 Dynamic Field Names
7.3.7 Using the size Function with Structure Arrays
7.3.8 Nesting Structure Arrays
7.3.9 Summary of structure Functions
7.4 Function Handles
7.4.1 Creating and Using Function Handles
7.4.2 The Significance of Function Handles
7.4.3 Function Handles and Nested Functions
7.4.4 An Example Application: Solving Ordinary Differential Equations
7.5 Summary
7.5.1 Summary of Good Programming Practice
7.5.2 MATLAB Summary
7.6 Exercises
Chapter 8 Input/Output Functions
8.1 The textread Function
8.2 More about the load and save Commands
8.3 An Introduction to MATLAB File Processing
8.4 File Opening and Closing
8.4.1 The fopen Function
8.4.2 The fclose Function
8.5 Binary I/O Functions
8.5.1 The fwrite Function
8.5.2 The fread Function
8.6 Formatted I/O Functions
8.6.1 The fprintf Function
8.6.2 Understanding Format Conversion Specifiers
8.6.3 How Format Strings Are Used
8.6.4 The sprintf Function
8.6.5 The fscanf Function
8.6.6 The fgetl Function
8.6.7 The fgets Function
8.7 Comparing Formatted and Binary I/O Functions
8.8 File Positioning and Status Functions
8.8.1 The exist Function
8.8.2 The ferror Function
8.8.3 The feof Function
8.8.4 The ftell Function
8.8.5 The frewind Function
8.8.6 The fseek Function
8.9 The textscan Function
8.10 Function uiimport
8.11 Summary
8.11.1 Summary of Good Programming Practice
8.11.2 MATLAB Summary
8.12 Exercises
Chapter 9 Handle Graphics
9.1 The MATLAB Graphics System
9.2 Object Handles
9.3 Examining and Changing Object Properties
9.3.1 Changing Object Properties at Creation Time
9.3.2 Changing Object Properties After Creation Time
9.4 Using set to List Possible Property Values
9.5 User-Defined Data
9.6 Finding Objects
9.7 Selecting Objects with the Mouse
9.8 Position and Units
9.8.1 Positions of figure Objects
9.8.2 Positions of axes and uicontrol Objects
9.8.3 Positions of text Objects
9.9 Printer Positions
9.10 Default and Factory Properties
9.11 Graphics Object Properties
9.12 Summary
9.12.1 Summary of Good Programming Practice
9.12.2 MATLAB Summary
9.13 Exercises
Chapter 10 Graphical User Interfaces
10.1 How a Graphical User Interface Works
10.2 Creating and Displaying a Graphical User Interface
10.2.1 A Look Under the Hood
10.2.2 The Structure of a Callback Subfunction
10.2.3 Adding Application Data to a Figure
10.2.4 A Few Useful Functions
10.3 Object Properties
10.4 Graphical User Interface Components
10.4.1 Static Text Fields
10.4.2 Edit Boxes
10.4.3 Pushbuttons
10.4.4 Toggle Buttons
10.4.5 Checkboxes and Radio Buttons
10.4.6 Popup Menus
10.4.7 List Boxes
10.4.8 Sliders
10.5 Additional Containers: Panels and Button Groups
10.5.1 Panels
10.5.2 Button Groups
10.6 Dialog Boxes
10.6.1 Error and Warning Dialog Boxes
10.6.2 Input Dialog Boxes
10.6.3 The uigetfile, uisetfile, and uigetdir Dialog Boxes
10.6.4 The uisetcolor and uisetfont Dialog Boxes
10.7 Menus
10.7.1 Suppressing the Default Menu
10.7.2 Creating Your Own Menus
10.7.3 Accelerator Keys and Keyboard Mnemonics
10.7.4 Creating Context Menus
10.8 Tips for Creating Efficient GUIs
10.8.1 Tool Tips
10.8.2 Pcode
10.8.3 Toolbars
10.8.4 Additional Enhancements
10.9 Summary
10.9.1 Summary of Good Programming Practice
10.9.2 MATLAB Summary
10.10 Exercises
Chapter 11 The MATLAB Compiler
11.1 Setting Up the MATLAB Compiler
11.2 Setting Up Computers that Run Compiled Applications
11.3 Using the MATLAB Compiler
11.3.1 A Simple Example
11.3.2 Additional Details
11.3.3 The Deployment Tool
11.4 Summary
11.4.1 Summary of Good Programming Practice
11.4.2 MATLAB Summary
11.5 Exercises
A: ASCII Character Set
B: Answers to Quizzes
Index
MATLAB® Programming for Engineers
This page intentionally left blank
MATLAB® Programming for Engineers Fourth Edition Stephen J. Chapman BAE SYSTEMS Australia A u s t r a l i a • C a n a d a • M e x i c o • S i n g a p o r e • S p a i n • U n i t e d K i n g d o m • U n i t e d S t a t e s
MATLAB® Programming for Engineers, Fourth Edition by Stephen J. Chapman Publisher: Chris Carson Developmental Editor: Hilda Gowans Permissions Coordinator: Kristiina Bowering Production Services: RPK Editorial Services Copy Editor: Harlan James COPYRIGHT © 2008 by Thomson Learning, part of the Thomson Corporation Printed in Canada 1 2 3 4 07 For more information contact Thomson Learning, 1120 Birchmount Road, Toronto, Ontario, Canada, MIK 5G4. Or you can visit our Internet site at http://www.thomsonlearning.com Library Congress Control Number: 2007932905 ISBN-10: 0-495-24449-X ISBN-13: 978-0-495-24449-3 Proofreader: Erin Wagner Indexer: Shelly Gerger-Knechtl Production Manager: Renate McCloy Creative Director: Angela Cluer Interior Design: Carmela Pereira ALL RIGHTS RESERVED. No part of this work covered by the copyright herein may be reproduced, tran- scribed, or used in any form or by any means – graphic, electronic, or mechanical, including photocopying, recording, taping, Web distribution, or information storage and retrieval systems – without the written permission of the publisher. For permission to use material from this text or product, submit a request online at www.thomsonrights.com Every effort has been made to trace ownership of all copyright material and to secure permission from copy- right holders. In the event of any question arising as to the use of any material, we will be pleased to make the necessary corrections in future printings. MATLAB® and SIMULINK® are regis- tered trademarks of The MathWorks, 3 Apple Hill Drive, Natick, MA 01760. Cover Design: Andrew Adams Compositor: Integra Printer: Webcom Limited North America Thomson Learning 1120 Birchmount Road Toronto, Ontario MIK 5G4 Canada Asia Thomson Learning 5 Shenton Way #01-01 UIC Building Singapore 068808 Australia/New Zealand Thomson Learning 102 Dodds Street Southbank, Victoria Australia 3006 Europe/Middle East/Africa Thomson Learning High Holborn House 50/51 Bedford Row London WCIR 4LR United Kingdom Latin America Thomson Learning Seneca, 53 Colonia Polanco 11560 Mexico D.F. Mexico Spain Paraninfo Calle/Magallanes, 25 28015 Madrid, Spain
This book is dedicated with love to my daughter Rachel.
This page intentionally left blank
Preface MATLAB® (short for MATrix LABoratory) is a special-purpose computer pro- gram optimized to perform engineering and scientific calculations. It started life as a program designed to perform matrix mathematics, but over the years it has grown into a flexible computing system capable of solving essentially any tech- nical problem. The MATLAB program implements the MATLAB language and provides a very extensive library of predefined functions to make technical programming tasks easier and more efficient. This extremely wide variety of functions makes it much easier to solve technical problems in MATLAB than in other languages such as Fortran or C. This book introduces the MATLAB language and shows how to use it to solve typical technical problems. This book teaches MATLAB as a technical programming language, showing students how to write clean, efficient, and documented programs. It makes no pre- tense at being a complete description of all of MATLAB’s hundreds of functions. Instead, it teaches the student how to use MATLAB as a computer language and how to locate any desired function with MATLAB’s extensive on-line help facilities. The first six chapters are designed to serve as the text for an “Introduction to Programming/Problem Solving” course for freshman engineering students. This material should fit comfortably into a 9-week, 3-hour course. The remaining chapters cover advanced topics such as I/O and graphical user interfaces. These chapters may be covered in a longer course or employed as a reference by engi- neering students or practicing engineers who use MATLAB as a part of their coursework or employment. vii
分享到:
收藏