MATLAB: How to use a class property validation function with a dynamic argument

MATLABoop

In Matlab OOP, I wanna use a function like mustBeEqualSize(a,b) from the Examples on function property validation to validate a property:
classdef foo
properties
a
b {mustBeEqualSize(a,b)}
end
end
However, this gives me an error.

Best Answer

The problem is, that MATLAB classes only support constant arguments on property validation.
However function arguments can be validated perfectly fine with dynamic arguments.
So a workaround is to validate the arguments of the constructor:
classdef Foo
properties
a
b
end
methods
function obj = Foo(a,b)
arguments
a
b {mustBeEqualSize(a,b)}
end
obj.a = a;
obj.b = b;
end
end
end