Direct cell {} indexing of class method output

Over the years, I've seen lots of posts (like this one) asking whether it is possible to append indexing operators to a function call, so as to extract partial contents from the function's output in a single command. The stock answer is that such syntax is not allowed. Lately however (R2017b), I have noticed that this is possible when a class method returns a cell array. Take the following class as an example,
classdef myclass
methods
function c=foo(obj)
c={pi,exp(1),1i};
end
end
end
I find that I can do the following kinds of post-indexing, which I reason shouldn't be allowed, since foo() is a function call, and not a class property
>> obj=myclass;
>> obj.foo{1}
ans =
3.1416
>> obj.foo{1:2}
ans =
3.1416
ans =
2.7183
My question is, has this always been possible? Is it documented anywhere?

 Accepted Answer

Spot checking: Works in R2009a 32-bit and R2018a 64-bit, so I would presume it has always worked although I have not tested everything in between.

More Answers (0)

Categories

Find more on Construct and Work with Object Arrays in Help Center and File Exchange

Asked:

on 7 Jun 2018

Answered:

on 7 Jun 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!