calling method (and sum'ing answer) on every class instance in a matrix
조회 수: 2 (최근 30일)
이전 댓글 표시
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.
댓글 수: 0
채택된 답변
추가 답변 (1개)
Daniel Shub
2011년 11월 30일
Welcome to the joys of MATLAB OOP. While TMW will tell you that the array nature of the OOP system is a real plus, I find it a real pain to work with. Your options are to either limit your class to scalars (i.e., not allowing myCollection) or to write your own subsref. Something like:
function varargout = subsref(obj, S)
for ii = 1:numel(obj)
varargout{ii} = builtin('subsref', obj(ii), S);
end
end
is a reasonable starting point, but it quickly gets more complicated.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Whos에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!