did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781584889113

A Guide To MATLAB Object-Oriented Programming

by ;
  • ISBN13:

    9781584889113

  • ISBN10:

    158488911X

  • Edition: 1st
  • Format: Nonspecific Binding
  • Copyright: 2007-05-14
  • Publisher: Chapman & Hall/

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $120.00 Save up to $40.20
  • Rent Book $79.80
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE
    USUALLY SHIPS IN 3-5 BUSINESS DAYS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

A Guide to MATLAB Object-Oriented Programmingis the first book to deliver broad coverage of the documented and undocumented object-oriented features of MATLAB ® . Unlike the typical approach of other resources, this guide explains why each feature is important, demonstrates how each feature is used, and promotes an understanding of the interactions between features.Assuming an intermediate level of MATLAB programming knowledge, the book not only concentrates on MATLAB coding techniques but also discusses topics critical to general software development. It introduces fundamentals first before integrating these concepts into example applications. In the first section, the book discusses eight basic functions: constructor, subsref, subsasgn, display, struct, fieldnames, get, and set. Building on the previous section, it explores inheritance topics and presents the Class Wizard, a powerful MATLAB class generation tool. The final section delves into advanced strategies, including containers, static variables, and function fronts.With more than 20 years of experience designing and implementing object-oriented software, the expert author has developed an accessible and comprehensive book that aids readers in creating effective object-oriented software using MATLAB.

Table of Contents

Figuresp. xv
Code Listingsp. xvii
Tablesp. xxi
About the Authorp. xxiii
Prefacep. xxv
Introductionp. 1
Examplesp. 2
Object-Oriented Software Developmentp. 2
At the Top of Your Gamep. 3
Personal Developmentp. 3
Wicked Problemsp. 5
Extreme Programmingp. 6
MATLAB, Object-Oriented Programming, and Youp. 8
Attributes, Behavior, Objects, and Classesp. 9
From MATLAB Heavyweight to Object-Oriented Thinkerp. 9
Object-Oriented Designp. 10
Why Use Objects?p. 11
A Quality Focusp. 12
Reliabilityp. 12
Reusabilityp. 13
Extendibilityp. 14
Summaryp. 15
Group of Eightp. 17
Meeting MATLAB's Requirementsp. 19
Variables, Types, Classes, and Objectsp. 19
What Is a MATLAB Class?p. 21
Example: Class Requirementsp. 21
Class Directoryp. 22
Constructorp. 22
The Test Drivep. 24
Summaryp. 26
Independent Investigationsp. 27
Member Variables and Member Functionsp. 29
Membersp. 29
Accessors and Mutatorsp. 30
A Short Side Trip to Examine Encapsulationp. 31
cShape Variablesp. 32
cShape Membersp. 33
cShape Private Member Variablesp. 33
cShape Public Interfacep. 34
A Short Side Trip to Examine Function Search Priorityp. 36
Example Code: Accessors and Mutators, Round 1p. 37
Constructorp. 37
Accessorsp. 37
Mutatorsp. 38
Combining an Accessor and a Mutatorp. 39
Member Functionsp. 40
Standardizationp. 40
The Test Drivep. 41
Summaryp. 42
Independent Investigationsp. 43
Changing the Rules...in Appearance Onlyp. 45
A Special Accessor and a Special Mutatorp. 45
A Short Side Trip to Examine Overloadingp. 45
Superiorto and Inferiortop. 47
The Built-in Functionp. 48
Overloading the Operators subsref and subsasgnp. 48
Dot-Reference Indexingp. 50
subsref Dot-Reference, Attempt 1p. 51
A New Interface Definitionp. 52
subsref Dot-Reference, Attempt 2: Separating Public and Private Variablesp. 53
subsref Dot-Reference, Attempt 3: Beyond One-to-One, Public-to-Privatep. 53
subsref Dot-Reference, Attempt 4: Multiple Indexing Levelsp. 55
subsref Dot-Reference, Attempt 5: Operator Conversion Anomalyp. 57
subsasgn Dot-Referencep. 59
Array-Reference Indexingp. 62
subsref Array-Referencep. 63
subsasgn Array-Referencep. 64
Cell-Reference Indexingp. 65
Initial Solution for subsref.mp. 66
Initial Solution for subsasgn.mp. 68
Operator Overload, mtimesp. 69
The Test Drivep. 70
subsasgn Test Drive 24p. 70
subsref Test Drivep. 72
Summaryp. 74
Independent Investigationsp. 75
Displaying an Object's Statep. 77
Displaying Objectsp. 77
What Should Be Displayed?p. 77
Standard Structure Displayp. 79
Public Member Variable Displayp. 80
Implementing display.m, Attempt 1p. 80
Implementing display.m, Attempt 2p. 81
Developer Viewp. 83
Implementing display.m with Developer View Optionsp. 84
The Test Drivep. 86
Summaryp. 88
Independent Investigationsp. 88
fieldnames.mp. 91
Fieldnamesp. 91
Code Developmentp. 91
The Test Drivep. 93
Summaryp. 93
Independent Investigationsp. 94
struct.mp. 95
Structp. 95
Code Developmentp. 96
The Test Drivep. 97
Summaryp. 98
Independent Investigationsp. 98
get.m, set.mp. 99
Arguments for the Member Functions get and setp. 99
For Developersp. 99
For Clientsp. 100
Tab Completionp. 101
Code Developmentp. 101
Implementing get and setp. 102
Initial get.mp. 104
Initial set.mp. 107
The Test Drivep. 110
Summaryp. 111
Independent Investigationsp. 112
Simplify Using get, set, fieldnames, and structp. 113
Improving subsref.mp. 114
Improving subsasgn.mp. 115
Improving display.mp. 116
Test Drivep. 118
Summaryp. 121
Independent Investigationsp. 122
Drawing a Shapep. 123
Ready, Set, Drawp. 123
Implementationp. 123
Modify the Constructorp. 124
Modify fieldnamesp. 125
Modify getp. 125
Modify setp. 128
Modify mtimesp. 131
Modify resetp. 132
Adding Member Function drawp. 132
Test Drivep. 133
Summaryp. 136
Independent Investigationsp. 137
Building a Hierarchyp. 139
Constructor Reduxp. 141
Specifying Initial Valuesp. 141
Private Member Functionsp. 142
Generalizing the Constructorp. 143
Constructor Helper/private/ctor_ini.mp. 145
Constructor Helper Example/private/ctor_1.mp. 146
Test Drivep. 147
Summaryp. 150
Independent Investigationsp. 151
Constructing Simple Hierarchies with Inheritancep. 153
Simple Inheritancep. 154
Constructorp. 154
Other Standard Member Functionsp. 157
Child Class fieldnamesp. 161
Child Class getp. 162
Child Class setp. 165
Parent Slicing in Nonstandard Member Functionsp. 167
draw.mp. 168
mtimes.mp. 168
reset.mp. 169
Test Drivep. 169
Summaryp. 173
Independent Investigationsp. 174
Object Arrays with Inheritancep. 175
When Is a cShape Not a cShape?p. 175
Changes to subsasgnp. 176
Vertcat and horzcatp. 177
Test Drivep. 178
Summaryp. 182
Independent Investigationsp. 182
Child-Class Membersp. 183
Function Redefinitionp. 183
/@cStar/private/ctor_ini.m with Private Member Variablesp. 184
/@cStar/fieldnames.m with Additional Public Membersp. 184
/@cStar/get.m with Additional Public Membersp. 185
/@cStar/set.m with Additional Public Membersp. 186
/@cStar/draw.m with a Titlep. 187
Test Drivep. 187
Summaryp. 189
Independent Investigationsp. 190
Constructing Simple Hierarchies with Compositionp. 191
Compositionp. 191
The cLineStyle Classp. 192
cLineStyle's private/ctor_inip. 193
cLineStyle's fieldnamesp. 194
cLineStyle's getp. 195
cLineStyle's setp. 196
cLineStyle's private/ctor_2p. 197
Using a Primary cShape and a Secondary cLineStylep. 198
Composition Changes to cShape's ctor_ini.mp. 199
Adding Line Weight to cShape's fieldnames.mp. 199
Composition Changes to cShape's get.mp. 200
Composition Changes to cShape's set.mp. 201
Composition Changes to cShape's draw.mp. 202
Composition Changes to cShape's Other Member Functionsp. 202
lest Drivep. 203
Summaryp. 204
Independent Investigationsp. 206
General Assignment and Mutator Helper Functionsp. 209
Helper Function Strategyp. 209
Direct-Link Public Variablesp. 210
Get and subsrefp. 210
Set and subsasgnp. 211
get and set Helper Functionsp. 212
Helper functions, get, and setp. 212
Final template for get.mp. 213
Final Template for set.mp. 217
Color Helper Functionp. 221
The Other Classes and Member Functionsp. 222
Test Drivep. 222
Summaryp. 223
Independent Investigationsp. 224
Class Wizardp. 225
File Dependenciesp. 226
Data-Entry Dialog Boxesp. 226
Main Class Wizard Dialogp. 227
Header Information Dialogp. 229
Parents...Dialogp. 231
Private Variable...Dialogp. 232
Concealed Variables...Dialogp. 234
Public Variables...Dialogp. 235
Constructors...Dialogp. 237
More...Dialogp. 238
Static Variables...Dialogp. 239
Private Functions...Dialogp. 240
Public Functions...Dialogp. 242
File Menup. 243
Data Menup. 244
Build Class Files Buttonp. 245
Summaryp. 246
Independent Investigationsp. 247
Class Wizard Versions of the Shape Hierarchyp. 249
cLineStyle Class Wizard Definition Datap. 249
cLineStyle Header Infop. 250
cLineStyle Private Variablesp. 251
cLineStyle Public Variablesp. 253
cLineStyle Constructor Functionsp. 255
cLineStyle Data Dictionaryp. 257
cLineStyle Build Class Filesp. 258
cLineStyle Accessor and Mutator Helper Functionsp. 259
cShape Class Wizard Definition Datap. 261
cShape Header Infop. 261
cShape Private Variablesp. 261
cShape Concealed Variablesp. 262
cShape Public Variablesp. 263
cShape Constructor Functionsp. 264
cShape Public Functionsp. 265
cShape Data Dictionaryp. 265
cShape Build Class Filesp. 266
cStar Class Wizard Definition Datap. 268
cStar Parentp. 268
Other cStar Definition Datap. 269
cDiamond Class Wizard Definition Datap. 271
Test Drivep. 271
Summaryp. 272
Independent Investigationsp. 275
Advanced Strategiesp. 277
Composition and a Simple Container Classp. 279
Building Containersp. 279
Container Implementationp. 280
The Standard Framework and the Group of Eightp. 280
Container Modifications to fieldnamesp. 281
Container Modifications to subsrefp. 283
Container Modifications to subsasgnp. 285
Container Modifications to getp. 287
Container Modifications to setp. 289
Tailoring Built-in Behaviorp. 290
Container-Tailored endp. 291
Container-Tailored cat, horzcat, vertcatp. 291
Container-Tailored length, ndims, reshape, and sizep. 293
cShapeArray and numelp. 294
Container-Tailored num2cell and mat2cellp. 295
Container Functions That Are Specific to cShape Objectsp. 296
cShapeArray times and mtimesp. 296
cShapeArray drawp. 298
cShapeArray resetp. 299
Test Drivep. 299
Summaryp. 302
Independent Investigationsp. 302
Static Member Data and Singleton Objectsp. 303
Adding Static Data to Our Frameworkp. 303
Hooking Static Data into the Group of Eightp. 304
Static Variables and the Constructorp. 305
Static Variables in get and setp. 305
Static Variables in displayp. 306
Overloading loadobj and saveobjp. 307
Counting Assignmentsp. 308
Singleton Objectsp. 308
Test Drivep. 309
Summaryp. 311
Independent Investigationsp. 312
Pass-by-Reference Emulationp. 313
Assignment without Equalp. 313
Pass-by-Reference Functionsp. 314
Pass-by-Reference Drawp. 315
Pass-by-Reference Member Variable: Viewp. 316
Helpers, get, and subsref with Pass-by-Reference Behaviorp. 316
Pass-by-Reference Behavior in the Helperp. 317
Pass-by-Reference Code in get.mp. 318
Pass-by-Reference Code in subsref.mp. 321
Other Group-of-Eight Considerationsp. 321
Test Drivep. 322
Summaryp. 324
Independent Investigationsp. 324
Dot Functions and Functorsp. 327
When Dot-Reference Is Not a Referencep. 327
When Array-Reference Is Not a Referencep. 332
Functorsp. 333
Functor Handlesp. 334
Functor fevalp. 335
Additional Remarks Concerning Functorsp. 335
Test Drivep. 336
Summaryp. 337
Independent Investigationsp. 337
Protected Member Variables and Functionsp. 339
How Protected Is Different from Other Visibilitiesp. 339
Class Elements for Protectedp. 339
Protected Functions and Advanced Function Handle Techniquesp. 340
Passing Protected Handles from Parent to Childp. 340
Accessing and Mutating Protected Variablesp. 341
Calling Protected Functionsp. 343
Test Drivep. 344
Summaryp. 345
Independent Investigationsp. 346
Potpourri for $100p. 347
A Small Assortment of Useful Commandsp. 347
Objectdirectoryp. 347
Methods and methodsviewp. 347
Functionsp. 348
Other Functions You Might Want to Overloadp. 348
Functions for Built-in Typesp. 348
subsindexp. 349
Isfieldp. 349
Summaryp. 350
Independent Investigationsp. 350
Indexp. 351
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program