Info

This question is locked. Vuélvala a abrir para editarla o responderla.

How to check whether a name is a locally accessible function?

39 visualizaciones (últimos 30 días)
Adil
Adil el 24 de Sept. de 2025 a las 10:05
Locked: Steven Lord el 27 de Sept. de 2025 a las 13:48
How to check whether a name is a locally accessible function and only locally accessible?
For example, with
function out = top_level_function(name)
% ???
function helper2
end
end
function helper1
end
Desired:
>> top_level_function('helper1')
>> ans =
1
>> otherwise_valid_function(); % executes
>> top_level_function('otherwise_valid_function')
>> ans =
0
isa(eval(['@',name]),'function_handle') with the necessary not file for [SL: removed spam link], not builtin check at the same time probably works in the case where there is no local name shadowing but I am also wondering if that can permit name to be evaluated as an expression without it being a function name. And also what to do when there is local name shadowing?
[SL: removed link that looked like spam]

Respuesta aceptada

Matt J
Matt J el 24 de Sept. de 2025 a las 10:22
Editada: Matt J el 24 de Sept. de 2025 a las 10:33
One way,
function tf = top_level_function(name)
s=functions(str2func(name));
tf=strcmp( s.type , "scopedfunction") ;
end

Más respuestas (0)

This question is locked.

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by