
| Contents | Index |
• Desktop Tools and Development Environment
• Desktop
• Running Functions - Command Window and History
• Running Functions and Programs, and Entering Variables
• Entering Statements in the Command Window
Cut, Copy, Paste, and Undo Features
Entering Multiple Lines Without Running Them
Entering Multiple Functions in a Line
Entering Multiple-Line (Long) Statements Using Line Continuation
Recalling Previous Lines in the Command Window
• Assistance While Entering Statements
Highlighting Syntax to Help Ensure Correct Entries
Matching Delimiters (Parentheses)
Complete Names in the Command Window Using the Tab Key
Viewing Function Syntax Hints While Entering a Statement
Getting Help for a Function Shown in the Command Window or Editor
• Controlling Output in the Command Window
Paging of Output in the Command Window
Formatting and Spacing Numeric Output
Number of Characters in Command Window Display
• Finding Text in the Command Window
Finding Text Currently Displayed in the Command Window
Increasing the Amount of Information Available for Searching in the Command Window
• Preferences for the Command Window
• Getting Help and Product Information
Getting Help for Functions and Blocks
Specifying Which Documentation to Display
Accessing English Documentation on Japanese Systems
Customizing Help Browser Fonts and Colors
Preferences for Configuring Help Windows, Search History, and PDF Readers
Accessing and Printing PDF Documentation
Product Documentation at the MathWorks Web Site
Newsgroup for MathWorks Products
File Exchange - Files Created By Other Users
Newsletters for MathWorks Products
About Help for Files Created by Others
Getting Command-Line Help for Externally Supplied Program Files
Viewing a Help Summary for Externally Supplied Files
Accessing Help for Externally Supplied Class Files
Accessing Externally Supplied Documentation in the Help Browser
• Workspace Browser and Variable Editor
Viewing and Editing Values in the Current Workspace
Viewing and Loading a Saved Workspace and Importing Data
Changing and Copying Variable Names
Viewing Base and Function Workspaces Using the Stack
Creating Plots from the Workspace Browser
Opening Variables and Objects for Viewing and Editing
Setting Workspace Browser Preferences
Working with Different Types of Data in the Variable Editor
Navigating and Editing Shortcut Keys for the Variable Editor
Changing Size, Content, and Format of Variables in the Variable Editor
Cut, Copy, Paste, and Clear Contents in the Variable Editor
Other Variable Editor Operations
Creating Graphs and Variables, and Data Brushing in the Variable Editor
Using the Current Folder Browser
Simple Search for File and Folder Names in the Current Folder Browser
Advanced Search for Files - Find Files Tool
Locating a File or Folder in the Operating System Browser
Finding Files and Folders Using Functions
Copying, Renaming, and Deleting Files and Folders
Comparing Folders and Zip Files
Comparing Files with Autosave Version or Version on Disk
Using Comparison Tool Features
Function Alternative for Comparing Files and Folders
Determining if MATLAB Can Access a File
Ensuring MATLAB Uses the File You Want
Viewing Files and Folders on the Search Path
Using the Search Path with Different MATLAB Installations
Recovering from Problems with the Search Path
Handling Errors and Unexpected Behavior When Updating Folders
• File Exchange - Finding and Getting Files Created by Other Users
What You Need to Use File Exchange
Ways to Access the File Exchange Repository
Example - Finding and Downloading a File in File Exchange
Using Search to Find Files in File Exchange
Finding Files by Product, Author, and Other Attributes in File Exchange
Using Tags to Find Files in File Exchange
Getting Better Results Using Search and Tags
Sorting the List of Files in File Exchange
Viewing the Contents of a File
Downloading from the List of Files
Downloading from the File Details Page to a Location You Choose
The Default Folder for Downloaded Files
Which Location Should You Choose When Downloading Files?
Downloading a Submission that Consists of Multiple Files
Viewing and Locating Files You Downloaded
Providing Comments About a File
Submitting Your Files to the Repository
How Does the File Exchange Desktop Tool Relate to File Exchange on the Web Site?
Why Do I See Only 50 Files and How Can I See More?
What Are Tags and How Do I Use Them?
What Are the Tags Above the List of Files?
Is Search Looking Inside Files?
How Can I Start Over When Looking for Files?
• Editing and Debugging MATLAB Code
Creating Files from the Command Window and Command History
Use Existing MATLAB Code and Examples
Creating New Files in the Editor
Opening Existing Files Using the Editor
Setting General Preferences for the Editor/Debugger
Setting Tab and Indent Preferences
Setting MATLAB Language Preferences
Setting TLC Language Preferences
Setting VHDL Language Preferences
Setting Verilog Language Preferences
Setting C/C++ Language Preferences
Setting Java Language Preferences
Setting XML/HTML Language Preferences
Setting Code Folding Preferences
Additional Information About Editor/Debugger Preferences
Entering Text in Insert or Overwrite Mode
Changing the Case of Selected Text
Undoing and Redoing Editor Actions
Completing Names in the Editor Using the Tab Key
Class, Function, or Subfunction
Code Folding - Expanding and Collapsing File Constructs
Displaying Two Parts of a File Simultaneously
Navigating Backward and Forward in Files
Opening a File or Variable from Within a File
Finding and Replacing Functions or Variables in the Current File
Finding and Replacing Any Text
Finding Text in Multiple File Names or Files
Function Alternative for Finding Text
Performing an Incremental Search in the Editor
Using Run Configurations to Run Files with Input Arguments in the Editor
Create and Use a Run Configuration
Create and Execute Multiple Run Configurations for a File
About the run_configurations.m File
Reassociate and Rename Configurations
Other Ways to Run Files from the Editor
Determining Scope and Usage of Functions and Variables
Running a File with Breakpoints
Correcting Problems and Ending Debugging
Breakpoints in Anonymous Functions
Breakpoints in Methods That Overload Functions
Scenarios for Evaluating Sections of Code
Process for Evaluating Sections of Files
Understanding Nested Code Cells
• Tuning and Managing MATLAB Code Files
Refining and Improving Files Using Reports
Identifying Files with Reminder Annotations
Generating a Summary View of the Help Components in Functions and Scripts
Displaying and Updating a Report on the Contents of a Folder
What Is Meant by Publishing MATLAB Code?
Process for Publishing MATLAB Code
Example of Published MATLAB Code
Adding the Markup for the Example
Overview of Marking Up MATLAB Comments for Publishing
Creating Document Titles and Introductory Text for Publishing an Existing File
Specifying Preformatted Text in MATLAB Files for Publishing
Specifying Bulleted or Numbered Lists in MATLAB Files for Publishing
Specifying Graphics in MATLAB Files for Publishing
Using HTML Markup Tags in MATLAB Files for Publishing
Using LaTeX Markup for Publishing
Including Inline LaTeX Math Equations in MATLAB Files for Publishing
Including LaTeX Display Math in MATLAB Files for Publishing
Forcing a Snapshot of Output in MATLAB Files for Publishing
Including Bold, Italic, and Monospaced Text in MATLAB Files for Publishing
Including Trademarks in MATLAB Files for Publishing
Including Hyperlinks in MATLAB Files for Publishing
Cleaning Up Text Markup Before Publishing MATLAB Files
Summary of Markup for Publishing MATLAB Files
Specifying the Display of Code Output
Creating a Publish Configuration for a MATLAB File
Running an Existing Publish Configuration
Creating Multiple Publish Configurations for a File
About the publish_configurations.m File
Finding Publish Configurations
• Creating a MATLAB Notebook to Publish to Microsoft Word
Creating or Opening a MATLAB Notebook
Entering Commands in a MATLAB Notebook
Protecting the Integrity of Your Workspace in MATLAB Notebooks
Ensuring Data Consistency in MATLAB Notebooks
Debugging and MATLAB Notebooks
Defining Input Cells for a MATLAB Notebook
Defining Cell Groups for a MATLAB Notebook
Defining Autoinit Input Cells for a MATLAB Notebook
Defining Calc Zones for a MATLAB Notebook
Converting an Input Cell to Text in a MATLAB Notebook
Evaluating a Range of Input Cells
Evaluating an Entire MATLAB Notebook
Using a Loop to Evaluate Input Cells Repeatedly
Converting Output Cells to Text
Modifying Styles in the MATLAB Notebook Template
Choosing Loose or Compact Format
Create Projects in Source Control System
Specify Source Control System with MATLAB Software
Register Source Control Project with MATLAB Software
Check Files Into Source Control
Check Files Out of Source Control
Removing Files from the Source Control System
Comparing the Working Copy of a File to the Latest Version in Source Control
Viewing Source Control Properties of a File
Starting the Source Control System
Restriction Against @ Character
Add to Source Control Is the Only Action Available
More Solutions for Source Control Problems
Setting a View and Checking Out a Folder with ClearCase Software on UNIX Platforms
Checking In One File Using the Editor, or the Simulink or Stateflow Products
Checking Out a Single File Using the Editor, or the Simulink or Stateflow Products
Undoing the Checkout for One or More Files Using the Current Folder Browser
Undoing the Checkout for a Single File Using the Editor, or the Simulink or Stateflow Products
Windows Platform-Specific Behavior
Tools that Import Multiple File Formats
Importing Specific File Formats
Importing Data in Other Formats
Processing a Sequence of Files
Tips for Using the Import Wizard
Viewing the Contents of a MAT-File
Tools for Importing Text Files
Importing Numeric ASCII Data with Headers
Importing Nonnumeric ASCII Data
Importing Nonrectangular ASCII Data
Importing Large ASCII Data Sets
Importing Text Data Files with Low-Level I/O
Example - Finding Text in an XML File
Selecting the Spreadsheet and Variables Interactively
Reading a Specific Worksheet and Range of Data
Reading All Worksheets into a Structure
Importing Network Common Data Form (NetCDF) Files
Importing Flexible Image Transport System (FITS) Files
Importing Hierarchical Data Format (HDF5) Files
Importing Hierarchical Data Format (HDF4) Files
Reading Image Data and Metadata from TIFF Files
Reading Files Created on Other Systems
Opening Files with Different Character Encodings
Saving Variables from the Workspace
Writing to Text Data Files with Low-Level I/O
File Formats that xlswrite Supports
Formatting Cells in Excel Files
Exporting to Network Common Data Form (NetCDF) Files
Exporting to Hierarchical Data Format (HDF5) Files
Exporting to Hierarchical Data Format (HDF4) Files
Overwriting or Appending to an Existing File
Creating a File for Use on a Different System
Opening Files with Different Character Encodings
Writing and Reading Complex Numbers
Constructing the Object with Default Property Values
Setting the Start of the Mapped Region
Identifying the Contents of the Mapped Region
Example 1 - Reading a Single Data Type
Example 2 - Formatting File Data as a Matrix
Example 3 - Reading Multiple Data Types
Example 4 - Modifying Map Parameters
Writing Matrices to a Mapped File
Selecting Appropriate Data Types
Matrix Concatenation Functions
Functions That Control Indexing Style
Using Logicals in Array Indexing
Single-Colon Indexing with Different Array Types
Data Structures Used in the Matrix
Diminishing the Size of a Matrix
Shifting the Location of Matrix Elements
Sorting the Data in Each Column
Constructing a Matrix from a Diagonal Vector
Returning a Triangular Portion of a Matrix
Concatenating Matrices Diagonally
Creating Multidimensional Arrays
Accessing Multidimensional Array Properties
Indexing Multidimensional Arrays
Reshaping Multidimensional Arrays
Computing with Multidimensional Arrays
Organizing Data in Multidimensional Arrays
Multidimensional Structure Arrays
Adding and Subtracting Matrices
Using Multithreaded Computation with Linear Algebra Functions
Using Multithreaded Computation with Systems of Linear Equations
Iterative Methods for Solving Systems of Linear Equations
Using Multithreaded Computation for Factorization
More Control over Repeatability and Non-Repeatability
Saving and Restoring Random Number Generator Settings
Writing Simpler, More Flexible, Code
Choosing a Random Number Generator
Initializing the Generator with an Integer Seed
Initializing the Generator with a State Vector
If You Are Unable to Upgrade from Former Syntax
Functions That Do Not Support Sparse Matrices
Functions with Sparse Alternatives
Indexing in Sparse Matrix Operations
Eigenvalues and Singular Values
Triangulation Face-Vertex Format
Querying Triangulations Using TriRep
Creating Delaunay Triangulations
Triangulation of Point Sets Containing Duplicate Locations
Searching Non-Delaunay Triangulations
Interpolating Scattered Data Using griddata and griddatan
Interpolating Scattered Data Using the TriScatteredInterp Class
Addressing Problems in Scattered Data Interpolation
Minimizing Functions of Several Variables
Creating and Using an Output Function
Structure of the Output Function
Importing Data into the Workspace
Exporting Data from the Workspace
Example: Loading and Plotting Data
Representing Missing Data Values
Example: Moving Average Filter
Example: Removing Linear Trends from Data
Example: Using MATLAB Data Statistics
Using Data Tips to Explore Graphs
Example - Visually Exploring Demographic Statistics
Fitting Data with Curve Fitting Toolbox Functions
Example: Using Basic Fitting GUI
Linear Model with Nonpolynomial Terms
Example: Time Series Objects and Methods
Time Series Collection Constructor
Editing Data, Time, Attributes, and Events
How MATLAB Recognizes Command Syntax
How to Use the Different Classes
Display Format for Numeric Values
Functions that Return a Logical Result
Using Logical Arrays in Conditional Statements
Using Logical Arrays in Indexing
Converting from Numeric to String
Converting from String to Numeric
Returning Data from a Struct Array
Using Structures with Functions
Converting Between Struct Array and Cell Array
Organizing Data in Structure Arrays
Assigning Values to a Cell Array
Returning Data from a Cell Array
Using Cell Arrays with Functions
Converting Between Cell Array and Struct Array
Calling a Function By Means of Its Handle
Preserving Data from the Workspace
Applications of Function Handles
Saving and Loading Function Handles
Advanced Operations on Function Handles
Functions That Operate on Function Handles
Examining the Contents of the Map
Reading and Writing Using a Key Index
Modifying Keys and Values in the Map
Mapping to Different Value Types
Combining Integer and Noninteger Data
Combining Cell Arrays with Non-Cell Arrays
Working with Serial Date Numbers
Calling Regular Expression Functions from MATLAB
Parsing Strings with Regular Expressions
Other Benefits of Using Regular Expressions
Function, Mode Options, Operator, Return Value Summaries
Generating a Comma-Separated List
Assigning Output from a Comma-Separated List
Assigning to a Comma-Separated List
How to Use the Comma-Separated Lists
Fast Fourier Transform Example
Providing Help for Your Program
Cleaning Up When the Function Completes
Determining Which Function Gets Called
Resolving Difficulties In Calling Functions
Passing Arguments in Structures or Cell Arrays
Working with the Example Function
Validating Data Passed to a Function
Calling a Function that Uses the Input Parser
Substituting Default Values for Arguments Not Passed
Interpreting Arguments Passed as Structures
Other Features of the Input Parser
Summary of inputParser Methods and Properties
Outputs from Anonymous Functions
Variables Used in the Expression
Examples of Anonymous Functions
Variable Scope in Nested Functions
Using Function Handles with Nested Functions
Restrictions on Assigning to Variables
Accessing Help for a Subfunction
Accessing Help for a Private Function
Getting Comfortable with Objects
What Are Objects and Why Use Them?
Objects In the MATLAB Language
Other Kinds of Objects Used by MATLAB
Using General-Purpose Data Structures
Classes Describe How to Create Objects
Events are Notices Broadcast to Listening Objects
Class of Objects Returned by Methods
Editing Objects with the Variable Editor
Information About Class Members
Getting Help for MATLAB Objects
Testing for Handle or Value Class
Difference Between clear and delete
Getting an Exception at the Command Line
Getting an Exception in Your Program Code
Properties of the MException Class
Methods of the MException Class
Suggestions on How to Handle an Exception
Output from Control Statements
Setting the Value of Timer Object Properties
Starting a Timer at a Specified Time
Blocking the MATLAB Command Line
Specifying the Value of Callback Function Properties
Executing a Timer Callback Function Multiple Times
Handling Callback Function Queuing Conflicts
Testing the Validity of a Timer Object
Finding Invisible Timer Objects
Using Appropriate Logical Operators
Overloading Built-In Functions
Functions Are Generally Faster Than Scripts
Load and Save Are Faster Than File I/O Functions
Avoid Large Background Processes
Using Appropriate Data Storage
How to Avoid Fragmenting Memory
Using the 3GB Switch on Windows Systems
Freeing Up System Resources on Windows Systems
Completing Commands Using the Tab Key
Suppressing Output to the Screen
Help on Functions from the Help Browser
Help on Functions from the Command Window
Help for Subfunctions and Private Functions
Help for Methods and Overloaded Functions
Using the Find and Replace Utility
Commenting Out a Block of Code
Creating Functions from Command History
Using Lowercase for Function Names
Getting a Function's Name and Path
What Files Does a Function Use?
Dependent Functions, Built-Ins, Classes
Passing Arguments in a Structure
Passing Arguments in a Cell Array
Selecting the Right Data Structures
Functions with One Calling Function
A Quick Way to Examine Variables
Setting Breakpoints from the Command Line
Finding Line Numbers to Set Breakpoints
Stopping Execution on an Error or Warning
Locating an Error from the Error Message
Making Sure Variable Names Are Valid
Do Not Use Function Names for Variables
Checking for Reserved Keywords
Avoid Using i and j for Variables
Avoid Overwriting Variables in Scripts
Protecting Persistent Variables
Comparing Methods of Concatenation
Store Arrays of Strings in a Cell Array
Converting Between Strings and Cell Arrays
Search and Replace Using Regular Expressions
Assigning to a Series of Variables
Short-Circuit Logical Operators
Changing the Counter Variable within a for Loop
Adding a Folder to the Search Path
Handles to Functions Not on the Path
Making Toolbox File Changes Visible to MATLAB
Making Nontoolbox File Changes Visible to MATLAB
Change Notification on Windows
Multiple Conditions in a case Statement
Catching Errors with try-catch
Forcing an Early Return from a Function
Loading Data into the Workspace
Viewing Variables in a MAT-File
Save and Load on Startup or Quit
Passing Filenames as Arguments
Passing Filenames to ASCII Files
Determining Filenames at Run-Time
Reading Files with Different Formats
Interactive Input into Your Program
Constructing Paths and Filenames
Finding the MATLAB Root Folder
Temporary Directories and Filenames
MATLAB Programmer Without Object-Oriented Programming Experience
MATLAB Programmer with Object-Oriented Programming Experience
Approaches to Writing MATLAB Programs
When Should You Start Creating Object-Oriented Programs
Classes in the MATLAB Language
Learning Object-Oriented Programming
Implementing the BankAccount Class
Implementing the AccountManager Class
Performing a Task with an Object
Defining the TensileData Class
Creating an Instance and Assigning Data
Restricting Properties to Specific Values
Simplifying the Interface with a Constructor
Displaying TensileData Objects
A Method to Plot Stress vs. Strain
Important Concepts Demonstrated
Why a Handle Class for Doubly Linked Lists?
Grouping Classes with Package Folders
More Information on Class Folders
How to Initialize Property Values
Assigning Property Values from Within the Constructor
Initializing Properties to Unique Values
Referencing Object Properties Using Variables
More Detailed Information On Methods
Defining Class-Related Functions
Overloading Functions and Operators
Simpler Syntax for true/false Attributes
Warnings Caused by Variable/Property Name Conflicts
Exception to Variable/Property Name Rule
New Features Introduced with Version 7.6
Common Object-Oriented Techniques
How MATLAB Evaluates Expressions
Access to Functions Defined in Private Folders
Class Precedence and MATLAB Path
Referencing Package Members Within Packages
Referencing Package Members from Outside the Package
Behavior of MATLAB Built-In Classes
Behavior of User-Defined Classes
Finding Handle Object Properties
Specifying Property Attributes
Set and Get Methods for Dependent Properties
Set and Get Method Execution and Property Events
Access Methods and Subscripted Reference and Assignment
Performing Additional Steps with Property Access Methods
Responding to Dynamic-Property Events
Defining Property Access Methods for Dynamic Properties
Dynamic Properties and ConstructOnLoad
Determining Which Method Is Invoked
Invoking Superclass Methods in Subclass Methods
Examples of Class Constructors
Initializing the Object Within a Constructor
Errors During Class Construction
Basic Structure of Constructor Methods
Rules for Naming to Avoid Conflicts
Object Scope and Anonymous Functions
Example - Class Method as a Slider Callback
Initializing Arrays of Value Objects
Initial Value of Object Properties
Initializing Arrays of Handle Objects
Referencing Property Values in Object Arrays
Object Arrays with Dynamic Properties
Converting to the Dominant Class
Implementing Converter Methods
Defining Listener Callback Functions
Example Property Event and Listener Classes
Aborting Set When Value Does Not Change
Access Fully Commented Example Code
Techniques Demonstrated in This Example
Methods Inherited from Handle Class
Using the fcneval and fcnview Classes
Implementing the UpdateGraph Event and Listener
Implementing the PostSet Property Event and Listener
Enabling and Disabling the Listeners
Implementation and Interface Inheritance
Referencing Superclasses from Subclasses
Constructor Arguments and Object Initialization
Call Only Direct Superclass from Constructor
Sequence of Constructor Calls in a Class Hierarchy
Using a Subclass to Create an Alias for an Existing Class
Modifying Superclass Properties
Private Local Property Takes Precedence in Method
Defining Handle-Compatible Classes
Subclassing Handle-Compatible Classes
Methods for Handle Compatible Classes
Handle Compatible Classes and Heterogeneous Arrays
Behavior of Built-In Functions with Subclass Objects
Example - A Class to Manage uint8 Data
Example - Adding Properties to a Built-In Subclass
Example - A Class to Represent Hardware
Interfaces and Abstract Classes
Example - Interface for Classes Implementing Graphs
When to Modify Object Saving and Loading
Processing Objects During Load
Avoiding Property Initialization Order Dependency
When to Use Transient Properties
Calling Constructor When Loading
Defining Methods in Enumeration Classes
Defining Properties in Enumeration Classes
Restrictions Applied to Enumeration Classes
Techniques for Defining Enumerations
Why Derive Enumeration Class from Built-In Classes
Superclass Constructor Returns Underlying Value
Selecting Handle- or Value-Based Enumerations
Value-Based Enumeration Classes
Handle-Based Enumeration Classes
Example - Using Enumerations to Represent a State
Built-In and Value-Based Enumeration Classes
Simple and Handle-Based Enumeration Classes
What Causes Loading as a Struct Instead of an Object
Setting Constant Property Default
Meta-Class EnumeratedValues Property
Perusing Meta-Classes with findobj
Example - Finding Properties with Specific Attributes
Which Methods Control Which Behaviors
Overloading and Overriding Functions and Methods
When to Overload MATLAB Functions
Caution When Overloading MATLAB Functions
Default Indexed Reference and Assignment
subsref and subsasgn Within Class Methods - Built-In Called
Understanding Indexed Reference
Avoid Overriding Access Attributes
Understanding Indexed Assignment
A Class with Modified Indexing
Defining end Indexing for an Object
MATLAB Operators and Associated Functions
Summary of the DocPolynom Class
The DocPolynom Constructor Method
Removing Irrelevant Coefficients
Converting DocPolynom Objects to Other Types
Defining Arithmetic Operators for DocPolynom
Overloading MATLAB Functions for the DocPolynom Class
Designing a Class for Financial Assets
The DocAsset Constructor Method
Designing a Class for Stock Assets
Designing a Class for Bond Assets
Designing a Class for Savings Assets
Summary of the DocSavings Class
Designing the DocPortfolio Class
Summary of the DocPortfolio Class
• Graphics
Plotting Tools Interface Overview
Accessing Object Properties with the Property Inspector
Identifying Workspace Data to Plot
Data Sources for Multiobject Graphs
Using Functions to Edit Graphs
Cutting, Copying, and Pasting Plot Objects
Undo/Redo - Eliminating Mistakes
Saving to a Different Format - Exporting Figures
Generating a MATLAB File to Recreate a Graph
Customizing Data Exploration Tools
Display Style - Datatip or Cursor Window
Selection Style - Select Data Points or Interpolate Points on Graph
Exporting Data Value to Workspace Variable
Rotation Style for Complex Graphs
Undo/Redo - Eliminating Mistakes
Enclosing Regions of a Graph in a Rectangle or an Ellipse
Pinning - Attaching to a Point in the Graph
Example - Vertical Distribute, Horizontal Align
Snap to Grid - Aligning Objects on a Grid
Using the Title Option on the Insert Menu
Using the Property Editor to Add a Title
Using the Label Options on the Insert Menu
Using the Property Editor to Add Axis Labels
Creating Text Annotations with the text or gtext Function
Mathematical Symbols, Greek Letters, and TEX Characters
Using Character and Numeric Variables in Text
Example - Using LaTeX to Format Math Equations
Editing Arrows and Line Annotations
Displaying Multiple Plots per Figure
Colors, Line Styles, and Markers
Specifying the Color and Size of Lines
Adding Plots to an Existing Graph
Line Styles for Black and White Output
Combining Linear and Logarithmic Axes
Example - Specifying Ticks and Tick Labels
Coloring 2-D Bars According to Height
Coloring 3-D Bars According to Height
Stacked Bar Graphs to Show Contributing Amounts
Overlaying Other Plots on Bar Graphs
Comparing Data Sets with Area Graphs
Removing a Piece from a Pie Chart
Histograms in Cartesian Coordinates
Histograms in Polar Coordinates
Using Data Cursors with Histograms
Combining Stem Plots with Line Plots
Three-Dimensional Quiver Plots
Changing the Offset of a Contour
Displaying Contours in Polar Coordinates
Example - Visualizing an FFT as a Movie
Updating Plot Object Axis and Color Data
Functions for Reading, Writing, and Displaying Images
8-Bit and 16-Bit Intensity Images
Mathematical Operations Support for uint8 and uint16
Other 8-Bit and 16-Bit Array Support
Converting an 8-Bit RGB Image to Grayscale
Summary of Image Types and Numeric Classes
Subsetting a Graphics Image (Cropping)
Obtaining Information About Graphics Files
Controlling Aspect Ratio and Display Size
Additional Techniques for Fast Image Updating
Specifying Parameters and Options
Default Settings and How to Change Them
Exporting to the Windows or Macintosh Clipboard
Printing with a Specific Paper Size
Exporting in a Specific Graphics Format
Exporting in EPS Format with a TIFF Preview
Exporting a Figure to the Clipboard
Setting the Figure Size and Position
Setting the Paper Size or Type
Setting the Axes Ticks and Limits
Setting Line and Text Characteristics
Setting the Line and Text Color
Specifying a Colorspace for Printing and Exporting
Excluding User Interface Controls form Printed Output
Frequently Used Graphics Formats
Factors to Consider in Choosing a Format
Properties Affected by Choice of Format
Impact of Rendering Method on the Output
Description of Selected Graphics Formats
How to Specify a Format for Exporting
Factors to Consider in Choosing a Driver
How to Specify the Printer Driver to Use
Information on Specific Graphics Objects
Figures Used for Graphing Data
Root Object - The Figure Parent
Example - Creating Core Graphics Objects
High-Level Versus Low-Level Functions
Identifying Plot Objects Programmatically
Plot Objects and Backward Compatibility
Changing the Size of Data Variables
Example - Enclosing Subplots with an Annotation Rectangle
Order Dependence of Setting Property Values
Properties Common to All Objects
How MATLAB Searches for Default Values
Examples - Setting Default Line Styles
The Current Figure, Axes, and Object
Searching for Objects by Property Values - findobj
Specifying the Target for Graphics Output
Preparing Figures and Axes for Graphics
Targeting Graphics Output with newplot
Quitting the MATLAB Environment
Errors in the Close Request Function
Overriding the Close Request Function
Redefining the CloseRequestFcn
Example - Translating Grouped Objects
Properties for Controlling Legend Content
Example - Excluding a Particular Object From a Legend
Example - One Legend Entry for a Group of Objects
Example - Showing Children of Group Objects in Legend
Example - Grouping Objects to Reduce the Legend Entries
User Interface Object Callbacks
Why Use Function Handle Callbacks
Example - Using Function Handles in GUIs
General Performance Guidelines
Specify Axes with Plotting Function for Better Performance
Performance of Bit-Mapped Images
Performance of Surface Objects
Figure Properties That Affect Docking
Example - Specifying Figure Position
Specifying the Figure Colormap
Creating Axes with Specific Characteristics
Using OuterPosition as the ActivePositionProperty
ActivePositionProperty = OuterPosition
ActivePositionProperty = Position
Multiple Axes for Different Scaling
Basic 3-D Plotting: The plot3 function
Functions for Plotting Data Grids
Visualizing Functions of Two Variables
Surface Plots of Nonuniformly Sampled Data
Indexed Color Surfaces - Direct and Scaled Color Mapping
Example - Mapping Surface Curvature to Color
Move Camera Horizontally/Vertically
Move Camera Forward and Backward
Defining the Camera Path as a Stream Line
Moving In and Out on the Scene
Making the Scene Larger or Smaller
Rotation Without Resizing of Graphics Objects
Rotation About the Viewing Axis
Projection Types and Camera Location
Example - axis Command Options
Additional Commands for Setting Aspect Ratio
Default Aspect Ratio Selection
Effects of Setting Aspect Ratio Properties
Example - Displaying Cross-Sections of Surfaces
Example - Displaying Real Objects
Properties That Affect Lighting
Positioning Lights in Data Space
Example - A Transparent Isosurface
Mapping Alpha Data to the Alphamap
Example - Mapping Data to Color or Transparency
Example - Modifying the Alphamap
Behavior of the patch Function
Handling Mixed Data Specification
Coloring Edges with Shared Vertices
Interpolating in Indexed Color Versus Truecolor
Selecting Visualization Techniques
Steps to Create a Volume Visualization
Volume Visualization Functions
Example - Ways to Display MRI Data
Example - Adding Isocaps to an Isosurface
Using Scalar Techniques with Vector Data
Specifying Starting Points for Stream Plots
Accessing Subregions of Volume Data
1. Determine the Range of the Coordinates
2. Add Slice Planes for Visual Context
3. Add Contour Lines to the Slice Planes
4. Define the Starting Points for the Stream Lines
1. Select a Subset of Data to Plot
2. Calculate Curl Angular Velocity and Wind Speed
4. Define the View and Add Lighting
1. Load Data and Calculate Required Values
3. Add Contour Lines to Slice Planes
1. Specify Starting Points of the Data Range to Plot
2. Create Stream Lines to Indicate Particle Paths
4. Calculate the Stream Particle Vertices
2. Add Isocaps to the Isosurface
• Creating Graphical User Interfaces
• About the Simple GUIDE GUI Example
• Laying Out the Simple GUI in GUIDE
• Programming the Simple GUIDE GUI
• Using the Completed Simple GUIDE GUI
Creating the Simple Programmatic GUI Code File
• Laying Out the Simple Programmatic GUI
• Coding the Simple Programmatic GUI
• Using the Completed Simple Programmatic GUI
• Adding Components to the GUI
A Working GUI with Many Components
Adding Components to the GUIDE Layout Area
Defining User Interface Controls
Defining Panels and Button Groups
Working with Components in the Layout Area
• Creating Menus in a GUIDE GUI
• Designing for Cross-Platform Compatibility
• Component Callbacks in GUIDE
• Customizing Callbacks in GUIDE
• Examples: Programming GUIDE GUI Components
• Making Multiple GUIs Work Together
Example - Manipulating a Modal Dialog Box for User Input
Example - Individual GUIDE GUIs Cooperating as Icon Manipulation Tools
• GUI for Animating a 3-D View
• GUI to Interactively Explore Data in a Table
• Accessing Workspace Variables from a List Box
• A GUI to Set Simulink Model Parameters
About the Simulink Model Parameters Example
View and Run the Simulink Parameters GUI
How to Use the Simulink Parameters GUI
Programming the Slider and Edit Text Components
Running the Simulation from the GUI
About the Address Book Reader Example
View and Run the Address Book Reader GUI
Loading an Address Book Into the Reader
The Contact Phone Number Callback
Paging Through the Address Book - Prev/Next
• Using a Modal Dialog Box to Confirm an Operation
About the Modal Dialog Example
View and Run the Modal Dialog Box GUIs
Setting Up the Close Confirmation Dialog
Setting Up the GUI with the Close Button
• Creating and Running a Programmatic GUI
Creating Figures for Programmatic GUIs
• Adding Components to a Programmatic GUI
• Composing and Coding GUIs with Interactive Tools
Setting Positions of Components Interactively
Setting Font Characteristics Interactively
• Setting Tab Order in a Programmatic GUI
• Creating Menus for a Programmatic GUI
• Creating Toolbars for Programmatic GUIs
• Designing Programmatic GUIs for Cross-Platform Compatibility
• Initializing a Programmatic GUI
• Examples: Programming GUI Components
• Sharing Data Among a GUI's Callbacks
• GUI with Axes, Menu, and Toolbar
About the Axes, Menu, and Toolbar Example
Viewing and Running the AxesMenuToolbar Code
Generating the Graphing Commands and Data
• GUI that Displays and Graphs Tabular Data
Viewing and Running the tableplot Code
Setting Up and Interacting with the uitable
Handle Graphics Property Browser
Why Write Custom Applications?
Exchanging Data Files Between Platforms
Overview of matimport.c Example
Declare Variables for External Data
Read External Data into mxArray Data
Creating a MAT-File in Fortran
Building on Windows Operating Systems
Deploying MAT-File Applications
Limitations to Shared Library Support
Troubleshooting Shared Library Applications
Examples of Passing Data to Shared Libraries
Manually Converting Data Passed to Functions
Constructing a libpointer Object
Creating a Pointer to a Primitive Type
Creating a Pointer to a Structure
Passing a Pointer to the First Element of an Array
Putting a String into a Void Pointer
Memory Allocation for an External Library
Working with Structures Examples
Example of Passing a MATLAB Structure
Using the Structure as an Object
Introduction to Source MEX-Files
Overview of Creating a Binary MEX-File
Using Help Files with MEX-Files
Workspace for MEX-File Functions
Selecting a Compiler on Windows Platforms
Selecting a Compiler on UNIX Platforms
Overview of Building the timestwo MEX-File
Understanding MEX-File Problems
Compiler and Platform-Specific Issues
Custom Building on UNIX Systems
Custom Building on Windows Systems
Creating a MEX-File Using LAPACK and BLAS Functions
Preserving Input Values from Modification
Passing Arguments to Fortran Functions from C/C++ Programs
Passing Arguments to Fortran Functions from Fortran Programs
Handling Complex Numbers in LAPACK and BLAS Functions
Modifying the Function Name on UNIX Systems
MEX Uses 32-Bit API by Default
How to Upgrade MEX-Files to Use the 64-Bit API
Passing Two or More Inputs or Outputs
Passing Structures and Cell Arrays
Handling 8-, 16-, and 32-Bit Data
Manipulating Multidimensional Numerical Arrays
Calling Functions from C/C++ MEX-Files
Using C++ Features in MEX-Files
Debugging on the Microsoft Windows Platforms
Building Cross-Platform Applications
Specifying Constant Literal Values
Replacing fseek and ftell with 64-Bit Functions
Determining the Size of an Open File
Determining the Size of a Closed File
Using the Fortran %val Construct
Passing Two or More Inputs or Outputs
Calling Functions from Fortran MEX-Files
Debugging on Microsoft Windows Platforms
Building Cross-Platform Applications
What You Need to Build Engine Applications
Calling MATLAB Software from a C Application
Calling MATLAB Software from a C++ Application
Calling MATLAB Software from a Fortran Application
Attaching to an Existing MATLAB Session
Building and Running Engine Applications on Windows Operating Systems
Windows Engine Example engwindemo
Building and Running Engine Applications on UNIX Operating Systems
Files Required by Engine Applications
Debugging MATLAB Functions Used in Engine Applications
Benefits of the MATLAB Java Interface
Who Should Use the MATLAB Java Interface
To Learn More About Java Programming Language
Platform Support for JVM Software
Using a Different Version of JVM Software
Making Java Classes Available in MATLAB Workspace
Loading Java Class Definitions
Locating Native Method Libraries
Java Classes Contained in a JAR File
Saving and Loading Java Objects to MAT-Files
Finding the Public Data Fields of an Object
Accessing Private and Public Data
Determining the Class of an Object
Invoking Static Methods on Java Classes
Obtaining Information About Methods
Java Methods That Affect MATLAB Commands
How MATLAB Software Handles Undefined Methods
How MATLAB Software Handles Java Exceptions
Method Execution in MATLAB Software
How MATLAB Software Represents the Java Array
Creating an Array of Objects in MATLAB Software
Accessing Elements of a Java Array
Creating a New Array Reference
Creating a Copy of a Java Array
Conversion of MATLAB Argument Data
Passing Data to Overloaded Methods
Conversion of Java Return Types
Converting Objects to MATLAB Types
Description of Function phonebook
Description of Function pb_lookup
Description of Function pb_add
Description of Function pb_remove
Description of Function pb_change
Description of Function pb_listall
Description of Function pb_display
Description of Function pb_keyfilter
Benefits of the MATLAB .NET Interface
Why Use the MATLAB .NET Interface?
What's the Difference Between the MATLAB .NET Interface and MATLAB Builder NE?
Using a .NET assembly in MATLAB
To Learn More About the .NET Framework
Example - Using System Resources
Loading .NET Assemblies into MATLAB
.NET Properties in the MATLAB Workspace
.NET Methods in the MATLAB Workspace
.NET Events in the MATLAB Workspace
What Classes Are in a .NET Assembly?
Using the delete Function on a .NET Object
Handling Data Returned from a .NET Object
Creating .NET Arrays in MATLAB
Example - Passing Data To a .NET Assembly
Accessing .NET Array Elements in MATLAB
Example - Reading Data From a .NET Assembly
Limitations to Support of .NET Arrays
Creating a Delegate from a .NET Object Method
Creating a Delegate Instance Bound to a .NET Method
Using Delegates With out and ref Type Arguments
Combining and Removing Delegates
Calling a Method Asynchronously
Limitations to Support of .NET Delegates
How to Iterate Through An Enumeration
Using Enumerations to Test for Conditions
Example - Read Special System Folder Path
Using Bit Flags with Enumerations
Limitations to Support of .NET Enumerations
Working with Events in Microsoft Office 2007 Applications
Accessing Items in a Collection
Example - Creating a Collection
Example - Converting a Collection to a MATLAB Array
Displaying Generic Methods Using Reflection
The MATLAB COM Automation Server
Registering Controls and Servers
Overview of MATLAB COM Client Examples
Example - Using Internet Explorer Program in a MATLAB Figure
Example - Grid ActiveX Control in a Figure
Example - Reading Excel Spreadsheet Data
MATLAB Client and In-Process Server
MATLAB Client and Out-of-Process Server
COM Implementations Supported by MATLAB Software
Client Application and MATLAB Automation Server
Client Application and MATLAB Engine Server
Identifying Objects and Interfaces
Setting the Value of a Property
Using Enumerated Values for Properties
Properties That Take Arguments
Exceptions to Using Implicit Syntax
Specifying Enumerated Parameters
Returning Multiple Output Arguments
Argument Callouts in Error Messages
Functions for Working with Events
Responding to Events - an Overview
Responding to Events - Examples
Writing Event Handlers as MATLAB File Subfunctions
Releasing COM Interfaces and Objects
Handling Data from a COM Object
Passing MATLAB Data to ActiveX Objects
Passing MATLAB SAFEARRAY to COM Object
Reading SAFEARRAY from a COM Object in MATLAB Applications
Displaying MATLAB Syntax for COM Objects
Using a MATLAB Application as an Automation Client
Connecting to an Existing Excel Application
Running a Macro in an Excel Server Application
Using Microsoft Forms 2.0 Controls
Using MATLAB Application as a DCOM Client
MATLAB COM Support Limitations
Connecting to an Existing MATLAB Server
Executing Commands in the MATLAB Server
Exchanging Data with the Server
Terminating the Server Process
Specifying a Shared or Dedicated Server
Using MATLAB Application as a DCOM Server
Example - Viewing Methods from a Visual Basic .NET Client
Example - Calling MATLAB Software from a Web Application
Example - Calling MATLAB Software from a C# Client
What You Need to Use Web Services with MATLAB
Typical Applications Using Web Services with MATLAB
How MATLAB Accesses Web Services
Example - createClassFromWsdl Function
Tools for Creating Web Services
Supported Serial Port Interface Standards
Using the Examples with Your Device
The Serial Port Interface Standard
Connecting Two Devices with a Serial Cable
Serial Port Signals and Pin Assignments
Finding Serial Port Information for Your Platform
Using Virtual USB Serial Ports
Configuring and Returning Properties
Configuring Properties During Object Creation
The Serial Port Object Display
Creating an Array of Serial Port Objects
Example - Introduction to Writing and Reading Data
Controlling Access to the MATLAB Command Line
Example - Writing and Reading Text Data
Example - Parsing Input Data Using textscan
Example - Introduction to Events and Callbacks
Event Types and Callback Properties
Responding To Event Information
Creating and Executing Callback Functions
Enabling Callback Functions After They Error
Example - Using Events and Callbacks
Signaling the Presence of Connected Devices
Controlling the Flow of Data: Handshaking
Example: Introduction to Recording Information
Creating Multiple Record Files
Example: Recording Information to Disk
Using Serial Port Objects on Different Platforms
• Examples
Briefly, MATLAB code is sensitive to casing, but insensitive to blank spaces. For details, see the following sections:
In MATLAB code, use an exact match with regard to case for variables, files, and functions. For example, if you have a variable a, you cannot refer to that variable as A. It is a best practice to use lowercase only when naming functions. This is especially useful when you use both Microsoft Windows and UNIX[1] platforms because their file systems behave differently with regard to case.
Note that if you use the help function, the help displays function names in all uppercase, for example, PLOT, solely to distinguish a function name from the rest of the text. Some functions for interfacing to Sun Microsystems Java software do use mixed case and the command-line help and the documentation accurately reflect that.
Blank spaces around operators such as -, :, and ( ), are optional, but they can improve readability. For example, MATLAB interprets the following statements the same way.
y = sin (3 * pi) / 2 y=sin(3*pi)/2
To edit text in the Command Window, choose Cut, Copy, Paste, Undo and Redo from the Edit menu.
Undo applies to some of the actions listed in Edit menu. You can perform an undo operation multiple times in succession. Redo reverses an Undo.
Press the Esc (escape) key to clear everything you have entered on the current line.
If you press Enter, you cannot edit a line after entering it, even though you have not completed the flow. In that event, use Ctrl+C to end the flow, and then enter the statements again.
To enter multiple statements on multiple lines before running any of the statements:
Type a statement on a line, and then use the keyboard shortcut for Break Line Without Code Execution (which is Shift+Enter by default).
The cursor moves down to the next line, which does not show a prompt.
Type the next statement.
Repeat steps 1 and 2 until you have typed all the statements you want.
Edit the statements, if needed.
Then, to run all of the lines, press Enter or Return.
For example, if you enter the following:
>> a=1 % Press Shift+Enter to advance without executing this statement. b=2 % Press Shift+Enter to advance without execution. You can edit this or the above line. c=a+b % Press Enter to execute all three statements.
MATLAB executes all three lines and returns the following:
a =
1
b =
2
c =
3
>>When you enter a paired keyword statement on multiple lines, such as for and end, you do not need to use Shift+Enter. You can use the typical process of pressing Enter after each line in the set to advance to the next line. MATLAB executes the keyword statement after you complete it on the last line. For example:
>> for r=1:5 % Press Enter. MATLAB advances a line where you continue the paired keyword statement. a=pi*r^2 % Press Enter. MATLAB advances a line where you continue the paired keyword statement. end % Press Enter to execute the paired keyword statement.
MATLAB executes all three lines and returns the following:
a = 3.141592653589793 a = 12.566370614359172 a = 28.274333882308138
See also Performing Desktop Actions Using Keyboard Shortcuts.
To enter multiple functions on a single line, separate the functions with a comma ( , ) or semicolon ( ; ). Using the semicolon instead of the comma suppresses the output for the command preceding the semicolon. For example, type three functions on one line to build a table of logarithms, and then press the Enter or Return key:
format short; x = (1:10)'; logs = [x log10(x)]
MATLAB runs the functions in order, from left-to-right.
To enter a multiple-line statement:
At the end of the line, indicate that the statement continues on the next line by entering three periods (...), also called dots, stops, or an ellipsis.
MATLAB ignores anything appearing after the ... on a line, and continues processing on the next line. This effectively creates a comment out of the text following the ... on a line.
Press the Enter or Return key.
Continue typing the statement on the next line.
Repeat steps 1 through 3 until you complete the statement.
Press Enter or Return when you complete the statement.
For items in single quotation marks, such as strings, you must complete the string in the line on which it was started. For example, completing a string as shown here
headers = ['Author Last Name, Author First Name, ' ... 'Author Middle Initial']
results in
headers = Author Last Name, Author First Name, Author Middle Initial
MATLAB produces an error when you do not complete the string, as shown here:
headers = ['Author Last Name, Author First Name, ... Author Middle Initial'] ??? headers = ['Author Last Name, Author First Name, ... Error: Missing variable or function.
Assuming you have not changed the default keyboard shortcuts for the arrow, tab, and control keys, you can recall, edit, and reuse functions you typed earlier by using these keys. For example, suppose you mistakenly enter
rho = (1+ sqt(5))/2
Because you misspelled sqrt, MATLAB responds with
Undefined function or variable 'sqt'.
Instead of retyping the entire line, press the up arrow
key. The previously
typed line is redisplayed. Use the left arrow key to move the cursor,
add the missing r, and press Enter or Return to
run the line. Repeated use of the up arrow key recalls earlier lines,
from the current and previous sessions. Using the up arrow key, you
can recall any line maintained in the Command History window.
Similarly, specify the first few characters of a line you entered previously and press the up arrow key to recall the previous line. For example, type the letters plo and then press the up arrow key. This displays the last line that started with plo, as in the most recent plot function. Press the up arrow key again to display the next most recent line that began with plo, and so on. Then press Enter or Return to run the line. This feature is case sensitive.
If the keys do not behave as documented here, check the actions currently assigned to them, as described in Displaying Keyboard Shortcuts.
To look at or copy information in the Command Window that is above the command-line prompt (>> ), use the mouse and scroll bar, key combinations such as Ctrl+Home, and search features. By default, the up and down arrow keys recall statements, and so by default, you cannot use these keys to move the cursor when it is above the command line.
To use the up and down arrow keys to move the cursor when it is above the command line, customize the keyboard shortcuts for the Cursor Up and Cursor Down actions in the Keyboard Shortcuts preferences. See also Customizing Keyboard Shortcuts.
[1] UNIX is a registered trademark of The Open Group in the United States and other countries.
![]() | Running Functions and Programs, and Entering Variables | Assistance While Entering Statements | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A; sessions led by MATLAB experts.
| © 1984-2011- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |
Store


