Borrar filtros
Borrar filtros

Looking for a way to mask handle functions when calling methods or doc

4 visualizaciones (últimos 30 días)
Hi
I'm putting together an object-oriented program that I want others to use. Most of the classes I use derive from handles, which is all good and well except that calling
help MyClass
also displays all the handle functions (eq, delete, addListener etc.). I want to hide these to help people learning to use the program, and to keep the tab-completion menu short and snappy.
I found a work-around solution from 2008 here: http://www.tim.cz/en/nfaq/matlab-simulink/tab-completion.php
Which involves overwriting the default methods() function. Before I commit to making sense of the approach in the link, has a more elegant means of this been implemented since 2008? (We've got R2010a at my university)
Cheers

Respuesta aceptada

Oleg Komarov
Oleg Komarov el 10 de Sept. de 2012
Editada: Oleg Komarov el 11 de Sept. de 2012
EDITED
Hide superclass methods using Hidden from Method Attributes
classdef foo < handle
properties
a = [];
b = [];
end
methods
function obj = foo
end
function methodA(obj)
obj.a = 1;
end
end
methods (Hidden)
function methodB(obj)
obj.b = 2;
end
function addlistener(obj, property, eventname, callback)
addlistener@addlistener(obj, property, eventname, callback)
end
end
end
a = foo;
methods(a)
  6 comentarios
Leon
Leon el 12 de Sept. de 2012
Ah thanks to you both - this is anything but elegant but it will have to do.
For anyone else interested I have lots and lots of classes, so I've made a hiddenHandle class that overwrites everything and I just inherit from that.
Again far from idea, but such is life.
Oleg Komarov
Oleg Komarov el 13 de Sept. de 2012
You could actually submit an enhancement request to the technical support.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by