MATLAB: Calling method (and sum’ing answer) on every class instance in a matrix

classsum

Hi, I asked a very similar question to this this morning for getting the sum of class properties in a matrix (cheers Daniel for the answer) but now I need to get the sum of method return values.
If I make a simple class;
MATLAB code
classdef ExampleClass < handle
methods
function obj = GetTotal(this)
%In real life this is a calculation that returns a value.
obj = 5;
end
end
end
And I make a collection of them;
MATLAB code
myCollection=[ExampleClass1; ExampleClass2; ExampleClass3; ExampleClass4];
Is there an easy way to get the sum of the GetTotal methods please? ie,
MATLAB code
sum([myCollection.GetTotal])
…would give 20?
Is it possible without making the method a dependent property?
Thanks for any help,
Tom.

Best Answer

sum(arrayfun(@(x) GetTotal(x), myCollection))