MATLAB, a powerful numerical computing environment, offers a wide range of tools for solving complex mathematical problems. One of the lesser-known features in MATLAB is the subsref
method, which allows you to customize how indexing and referencing of objects within classes are handled. In this article, we will delve into the subsref
method and how it can be used to enhance your MATLAB programming skills.
Understanding the subsref
Method:
The subsref
method is a fundamental part of MATLAB’s object-oriented programming capabilities. It plays a crucial role when you need to customize the behavior of objects in your classes, especially when it comes to indexing and referencing those objects.
Types of Indexing:
In MATLAB, there are various types of indexing operations, including parentheses ()
, braces {}
, and dot notation .
. Each of these indexing methods can be customized using the subsref
method. Let’s explore each type:
Parentheses Indexing: Parentheses
Parentheses indexing is commonly used for function calls in MATLAB. When overloading the subsref
method for parentheses indexing, you can handle input parameters and return specific results based on those inputs. For instance, you can perform mathematical operations and return computed values.
function b = subsref(a, s) if s(1).type == '()' % Handle indexing and return results end end

Brace Indexing:
Unlike parentheses indexing, brace indexing is not built into standard MATLAB classes. However, it can be customized for your classes. Brace indexing is typically used with cell arrays or objects that mimic cell arrays. To handle brace indexing, you can return specific elements or properties of your objects.
function b = subsref(a, s) if s(1).type == '{}' % Handle indexing and return specific elements or properties end end
Dot Notation:
The dot notation is used for member indexing, allowing you to access properties or methods of objects. When customizing the subsref
method for dot notation, you can define how properties or methods are accessed.
function b = subsref(a, s) if s(1).type == '.' % Handle member indexing and return specific properties or methods end end
Practical Example:
To demonstrate the subsref
method in action, consider a custom MATLAB class called MPolynom
. This class represents polynomials and customizes the subsref
method to allow for different indexing operations.
Conclusion:
The subsref
method in MATLAB is a powerful tool for customizing how objects are indexed and referenced in your classes. By understanding the various types of indexing operations and how to handle them using subsref
, you can enhance the functionality and usability of your MATLAB programs.
In this article, we explored the basics of the subsref
method and its importance in MATLAB’s object-oriented programming paradigm. We also discussed practical examples and how you can use subsref
to customize indexing operations for your own classes.