Classdef get methods: allowing get indexing into an array of length either (1x1) or (Nx1).
2 views (last 30 days)
Hello all, I am trying to sort out an issue best shown in this MWE, where I have a property that may be a column vector, but is initialized with a single value.
A (:,1) double = 0;
Now, lets say I want to index into myClass.A using B = myClass.A(indx). However, I want it so that if myClass.A is still a (1x1) I want to return the initial value, not an "Index exceeds array bounds" error.
I can picture doing this with a get method of the following form
function out = get.A(indx)
if numel(obj.A) == 1
out = obj.A(1);
out = obj.A(indx);
However, this will clearly not work since (A) get methods are limitited to one input, and I need to pass "indx", (B) I don't pass an instance of the object to get.A, so it has no access, and (C) this would wind up being infinitely recursive if I was able to do it.
Is there a way to allow use of a single default value as the output of a property regardless of the requested index, if that property has not yet been overwritten with an Nx1 vector.