Programming and Data Types    

M-File Programming

MATLAB Programming: A Quick Start

Kinds of M-Files

What's in an M-File?

Providing Help for Your Programs

Creating M-Files: Accessing Text Editors

Scripts

Simple Script Example

Functions

Simple Function Example

Basic Parts of a Function M-File

Function Names

How Functions Work

Checking the Number of Function Arguments

Passing Variable Numbers of Arguments

Local and Global Variables

Persistent Variables

Special Values

Data Types

Keywords

Operators

Arithmetic Operators

Relational Operators

Logical Operators

Operator Precedence

Flow Control

if, else, and elseif

switch

while

for

continue

break

try ... catch

return

Subfunctions

Private Functions

Subscripting and Indexing

Subscripting

Advanced Indexing

String Evaluation

eval

feval

Command/Function Duality

Empty Matrices

Operating on an Empty Matrix

Using Empty Matrices with If or While

Errors and Warnings

Error Handling with eval and lasterr

Displaying Error and Warning Messages

Dates and Times

Date Formats

Current Date and Time

Obtaining User Input

Prompting for Keyboard Input

Pausing During Execution

Shell Escape Functions

Optimizing MATLAB Code

Vectorizing Loops

Preallocating Arrays

Making Efficient Use of Memory

Character Arrays (Strings)

Character Arrays

Creating Character Arrays

Creating Two-Dimensional Character Arrays

Converting Characters to Numeric Values

Cell Arrays of Strings

Converting to a Cell Array of Strings

String Comparisons

Comparing Strings For Equality

Comparing for Equality Using Operators

Categorizing Characters Within a String

Searching and Replacing

String/Numeric Conversion

Array/String Conversion

Multidimensional Arrays

Multidimensional Arrays

Creating Multidimensional Arrays

Accessing Multidimensional Array Properties

Indexing

Reshaping

Permuting Array Dimensions

Computing with Multidimensional Arrays

Operating on Vectors

Operating Element-by-Element

Operating on Planes and Matrices

Organizing Data in Multidimensional Arrays

Multidimensional Cell Arrays

Multidimensional Structure Arrays

Applying Functions to Multidimensional Structure Arrays

Structures and Cell Arrays

Structures

Building Structure Arrays

Accessing Data in Structure Arrays

Finding the size of Structure Arrays

Adding Fields to Structures

Deleting Fields from Structures

Applying Functions and Operators

Writing Functions to Operate on Structures

Organizing Data in Structure Arrays

Nesting Structures

Cell Arrays

Creating Cell Arrays

Obtaining Data from Cell Arrays

Deleting Cells

Reshaping Cell Arrays

Replacing Lists of Variables with Cell Arrays

Applying Functions and Operators

Organizing Data in Cell Arrays

Nesting Cell Arrays

Converting Between Cell and Numeric Arrays

Cell Arrays of Structures

Function Handles

Benefits of Using Function Handles

A Simple Function Handle

Constructing a Function Handle

Maximum Length of a Function Name

Evaluating a Function Through Its Handle

Function Evaluation and Overloading

Examples of Function Handle Evaluation

Displaying Function Handle Information

Fields Returned by the Functions Command

Types of Function Handles

Function Handle Operations

Converting Function Handles to Function Names

Converting Function Names to Function Handles

Testing for Data Type

Testing for Equality

Saving and Loading Function Handles

Handling Error Conditions

Handles to Nonexistent Functions

Including Path In the Function Handle Constructor

Evaluating a Nonscalar Function Handle

Historical Note - Evaluating Function Names

MATLAB Classes and Objects

Classes and Objects: An Overview

Features of Object-Oriented Programming

MATLAB Data Class Hierarchy

Creating Objects

Invoking Methods on Objects

Private Methods

Helper Functions

Debugging Class Methods

Setting Up Class Directories

Data Structure

Tips for C++ and Java Programmers

Designing User Classes in MATLAB

The MATLAB Canonical Class

The Class Constructor Method

Examples of Constructor Methods

Identifying Objects Outside the Class Directory

The display Method

Accessing Object Data

The set and get Methods

Indexed Reference Using subsref and subsasgn

Handling Subscripted Reference

Handling Subscripted Assignment

Object Indexing Within Methods

Defining end Indexing for an Object

Indexing an Object with Another Object

Converter Methods

Overloading Operators and Functions

Overloading Operators

Overloading Functions

Example - A Polynomial Class

Polynom Data Structure

Polynom Methods

The Polynom Constructor Method

Converter Methods for the Polynom Class

The Polynom display Method

The Polynom subsref Method

Overloading Arithmetic Operators for polynom

Overloading Functions for the Polynom Class

Listing Class Methods

Building on Other Classes

Simple Inheritance

Multiple Inheritance

Aggregation

Example - Assets and Asset Subclasses

Inheritance Model for the Asset Class

Asset Class Design

Other Asset Methods

The Asset Constructor Method

The Asset get Method

The Asset set Method

The Asset subsref Method

The Asset subsasgn Method

The Asset display Method

The Asset fieldcount Method

Designing the Stock Class

The Stock Constructor Method

The Stock get Method

The Stock set Method

The Stock subsref Method

The Stock subsasgn Method

The Stock display Method

Example - The Portfolio Container

Designing the Portfolio Class

The Portfolio Constructor Method

The Portfolio display Method

The Portfolio pie3 Method

Creating a Portfolio

Saving and Loading Objects

Modifying Objects During Save or Load

Example - Defining saveobj and loadobj for Portfolio

Summary of Code Changes

The saveobj Method

The loadobj Method

Changing the Portfolio Constructor

The Portfolio subsref Method

Object Precedence

Specifying Precedence of User-Defined Classes

How MATLAB Determines Which Method to Call

Selecting a Method

Querying Which Method MATLAB Will Call


 Programming and Data Types M-File Programming