23.06.2015 Views

MATLAB Programming

MATLAB Programming

MATLAB Programming

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

9 Classes and Objects<br />

overloaded methods with function calls rather than using operators like '()',<br />

'{}', or'.'.<br />

For example, suppose you define a polynomial class that defines a subsref<br />

method that causes the polynomial to beevaluatedwiththevalueofthe<br />

independent variable equal to the subscript. Therefore,<br />

p = polynom([1 0 -2 -5]);<br />

The following subscripted expression returns the value of the polynomial at<br />

x = 3 and x = 4.<br />

p([3 4])<br />

ans =<br />

16 51<br />

Now suppose that you want to use this feature in one of the class methods. To<br />

do so, you must call the subsref function directly:<br />

y = polyval(p,x);<br />

subs.type = '()';<br />

subs.subs = {x};<br />

y = subsref(p, subs);<br />

% Need to call subsref here<br />

Handling Subscripted Reference<br />

The use of a subscript or field designator with an object on the right-hand side<br />

of an assignment statement is known as a subscripted reference. <strong>MATLAB</strong><br />

calls a method named subsref in these situations.<br />

Object subscripted references can be of three forms — an array index, a cell<br />

array index, and a structure field name:<br />

A(I)<br />

A{I}<br />

A.field<br />

Each of these results in a call by <strong>MATLAB</strong> to the subsref method in the class<br />

directory. <strong>MATLAB</strong> passes two arguments to subsref.<br />

B = subsref(A,S)<br />

9-16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!