call function name in the same function

3 visualizaciones (últimos 30 días)
feynman feynman
feynman feynman el 20 de Abr. de 2024
Comentada: feynman feynman el 21 de Abr. de 2024
In a function, I need to run this function somewhere within the function like
function fun
i=1
if i>1
function name
end
end
"function name" is just to call "fun", but I need to create a few copy m files of the above scripts with respective changes in the code so that the function name is actually "copy fun" or "copy 2 fun" etc and I wish "function name" to call "copy fun" or "copy 2 fun" etc.
  6 comentarios
feynman feynman
feynman feynman el 21 de Abr. de 2024
hi all, thank you for your kindness but bruno's answer is what I want!
Bruno Luong
Bruno Luong el 21 de Abr. de 2024
The "end" added by code formatting changes completely the question; whic is not doesn(t make a sense to me.

Iniciar sesión para comentar.

Respuesta aceptada

Bruno Luong
Bruno Luong el 20 de Abr. de 2024
Editada: Bruno Luong el 20 de Abr. de 2024
This returns the name of the function being executed
s = dbstack;
funname = s(1).name;
In recent MATLAB versions you can do in single line
funname = dbstack().name; % assign the first element of the comma list
Then you can call your recursion by
thisfun = str2func(funname);
thisfun(...); % or feval(thisfun, ...) or feval(funname, ...)
  9 comentarios
Bruno Luong
Bruno Luong el 21 de Abr. de 2024
Editada: Bruno Luong el 21 de Abr. de 2024
In my first version there is NO str2fun
functionName=dbstack().name;
I later concateate only two char arrays.
You also take a freedom to change thisfun to functionname then confuse yourself with what class/type they are.
feynman feynman
feynman feynman el 21 de Abr. de 2024
wow you are such a genius, thank you a million also to the other kind friends who helped!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by