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