Introducing MEX-Files
Using MEX-Files
The Distinction Between mx and mex Prefixes
MATLAB Data
The MATLAB Array
Data Storage
Data Types in MATLAB
Using Data Types
Building MEX-Files
Compiler Requirements
Testing Your Configuration on UNIX
Testing Your Configuration on Windows
Specifying an Options File
Custom Building MEX-Files
Who Should Read This Chapter
MEX Script Switches
Default Options File on UNIX
Default Options File on Windows
Custom Building on UNIX
Custom Building on Windows
Troubleshooting
Configuration Issues
Understanding MEX-File Problems
Compiler and Platform-Specific Issues
Memory Management Compatibility Issues
Additional Information
Files and Directories - UNIX Systems
Files and Directories - Windows Systems
Examples
Technical Support
Creating C Language MEX-Files
C MEX-Files
The Components of a C MEX-File
Required Arguments to a MEX-File
Examples of C MEX-Files
A First Example -- Passing a Scalar
Passing Strings
Passing Two or More Inputs or Outputs
Passing Structures and Cell Arrays
Handling Complex Data
Handling 8-,16-, and 32-Bit Data
Manipulating Multidimensional Numerical Arrays
Handling Sparse Arrays
Calling Functions from C MEX-Files
Advanced Topics
Help Files
Linking Multiple Files
Workspace for MEX-File Functions
Memory Management
Using LAPACK and BLAS Functions
Debugging C Language MEX-Files
Debugging on UNIX
Debugging on Windows
Creating Fortran MEX-Files
Fortran MEX-Files
The Components of a Fortran MEX-File
The %val Construct
Examples of Fortran MEX-Files
A First Example -- Passing a Scalar
Passing Strings
Passing Arrays of Strings
Passing Matrices
Passing Two or More Inputs or Outputs
Handling Complex Data
Dynamically Allocating Memory
Handling Sparse Matrices
Calling Functions from Fortran MEX-Files
Advanced Topics
Help Files
Linking Multiple Files
Workspace for MEX-File Functions
Memory Management
Debugging Fortran Language MEX-Files
Debugging on UNIX
Debugging on Windows
Calling MATLAB from C and Fortran Programs
Using the MATLAB Engine
The Engine Library
GUI-Intensive Applications
Examples of Calling Engine Functions
Calling MATLAB From a C Application
Calling MATLAB From a Fortran Application
Attaching to an Existing MATLAB Session
Compiling and Linking Engine Programs
Masking Floating-Point Exceptions
Compiling and Linking on UNIX
Compiling and Linking on Windows
Calling Java from MATLAB
Using Java from MATLAB: An Overview
Java Interface Is Integral to MATLAB
Benefits of the MATLAB Java Interface
Who Should Use the MATLAB Java Interface
To Learn More About Java Programming
Platform Support for the Java Virtual Machine
Bringing Java Classes into MATLAB
Sources of Java Classes
Defining New Java Classes
Making Java Classes Available to MATLAB
Loading Java Class Definitions
Simplifying Java Class Names
Creating and Using Java Objects
Constructing Java Objects
Concatenating Java Objects
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 Methods on Java Objects
Using Java and MATLAB Calling Syntax
Invoking Static Methods on Java Classes
Obtaining Information About Methods
Java Methods That Affect MATLAB Commands
How MATLAB Handles Undefined Methods
How MATLAB Handles Java Exceptions
Working with Java Arrays
How MATLAB Represents the Java Array
Creating an Array of Objects Within MATLAB
Accessing Elements of a Java Array
Assigning to a Java Array
Concatenating Java Arrays
Creating a New Array Reference
Creating a Copy of a Java Array
Passing Data to a Java Method
Conversion of MATLAB Argument Data
Passing Built-In Data Types
Passing String Arguments
Passing Java Objects
Other Data Conversion Topics
Passing Data to Overloaded Methods
Handling Data Returned from a Java Method
Conversion of Java Return Data
Built-In Data Types
Java Objects
Converting Objects to MATLAB Data Types
Introduction to Programming Examples
Example - Reading a URL
Description of URLdemo
Running the Example
Example - Finding an Internet Protocol Address
Description of resolveip
Running the Example
Example - Communicating Through a Serial Port
Description of Serial Example
Running the serialexample Program
Example - Creating and Using a Phone Book
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
Running the phonebook Program
Importing and Exporting Data
Using MAT-Files
Importing Data to MATLAB
Exporting Data from MATLAB
Exchanging Data Files Between Platforms
Reading and Writing MAT-Files
Finding Associated Files
Examples of MAT-Files
Creating a MAT-File in C
Reading a MAT-File in C
Creating a MAT-File in Fortran
Reading a MAT-File in Fortran
Compiling and Linking MAT-File Programs
Masking Floating Point Exceptions
Compiling and Linking on UNIX
Compiling and Linking on Windows
COM and DDE Support
Introducing MATLAB COM Integration
Concepts and Terminology
Overview of MATLAB COM Support
MATLAB COM Client Support
Creating COM Objects
Object Properties
Invoking Methods
COM Control Events
Identifying Objects
Saving Your Work
Releasing COM Interfaces and Objects
Writing Event Handlers
Examples of MATLAB as an Automation Client
Additional COM Client Information
Using COM Collections
Converting Data
Using MATLAB as a DCOM Server Client
MATLAB COM Support Limitations
MATLAB Automation Server Support
MATLAB COM Automation Methods
MATLAB Automation Properties
Additional Automation Server Information
Launching the MATLAB Server
Specifying a Shared or Dedicated Server
Using MATLAB as a DCOM Server
Dynamic Data Exchange (DDE)
DDE Concepts and Terminology
Accessing MATLAB as a Server
The DDE Name Hierarchy
Example: Using Visual Basic and the MATLAB DDE Server
Using MATLAB as a Client
DDE Advisory Links
Serial Port I/O
Introduction
What Is the MATLAB Serial Port Interface?
Supported Serial Port Interface Standards
Supported Platforms
Using the Examples with Your Device
Overview of the Serial Port
What Is Serial Communication?
The Serial Port Interface Standard
Connecting Two Devices with a Serial Cable
Serial Port Signals and Pin Assignments
Serial Data Format
Finding Serial Port Information for Your Platform
Selected Bibliography
Getting Started with Serial I/O
Example: Getting Started
The Serial Port Session
Configuring and Returning Properties
Creating a Serial Port Object
Configuring Properties During Object Creation
The Serial Port Object Display
Creating an Array of Serial Port Objects
Connecting to the Device
Configuring Communication Settings
Writing and Reading Data
Example: Introduction to Writing and Reading Data
Controlling Access to the MATLAB Command Line
Writing Data
Reading Data
Example: Writing and Reading Text Data
Example: Parsing Input Data Using strread
Example: Reading Binary Data
Events and Callbacks
Example: Introduction to Events and Callbacks
Event Types and Callback Properties
Storing Event Information
Creating and Executing Callback Functions
Enabling Callback Functions After They Error
Example: Using Events and Callbacks
Using Control Pins
Signaling the Presence of Connected Devices
Controlling the Flow of Data: Handshaking
Debugging: Recording Information to Disk
Example: Introduction to Recording Information
Creating Multiple Record Files
Specifying a Filename
The Record File Format
Example: Recording Information to Disk
Saving and Loading
Using Serial Port Objects on Different Platforms
Disconnecting and Cleaning Up
Disconnecting a Serial Port Object
Cleaning Up the MATLAB Environment
Property Reference
The Property Reference Page Format
Serial Port Object Properties
BaudRate
BreakInterruptFcn
ByteOrder
BytesAvailable
BytesAvailableFcn
BytesAvailableFcnCount
BytesAvailableFcnMode
BytesToOutput
DataBits
DataTerminalReady
ErrorFcn
FlowControl
InputBufferSize
Name
OutputBufferSize
OutputEmptyFcn
Parity
PinStatus
PinStatusFcn
Port
ReadAsyncMode
RecordDetail
RecordMode
RecordName
RecordStatus
RequestToSend
Status
StopBits
Tag
Terminator
Timeout
TimerFcn
TimerPeriod
TransferStatus
Type
UserData
ValuesReceived
ValuesSent
Examples