how can i know which toolbox a function is calling?

If I have a function, how can I know which toolbox is using without going through the code?
And also, how can I know which subfunctions a fucntion is calling?
I have used:
profile on
function()
profile viewer
but it looks really messy because it lists also all scripts and built-in
Thanks

 Respuesta aceptada

Kelly Kearney
Kelly Kearney el 23 de Nov. de 2011

1 voto

I prefer fdep over depfun, because a) it provides a lot more detailed information, including separating the files by toolbox if applicable, and b) I find depfun very buggy and unreliable (I get the same type of crashes you refer to, usually because depfun messed up and is trying to list every function and method associated with some random obscure class that is not actually called by my function but that shares a name with something in the dependency tree).

Más respuestas (4)

Thomas
Thomas el 22 de Nov. de 2011
Use a 'which FucntionName' command
Eg.
>> which qfunc
/Applications/MATLAB_R2011b.app/toolbox/comm/comm/qfunc.m
Tells you that it is using the communication toolbox..

5 comentarios

joeDiHare
joeDiHare el 23 de Nov. de 2011
no, 'which' does not tell me all the toolbox a function is using.
joeDiHare
joeDiHare el 23 de Nov. de 2011
Well, true, you are right. Unfort I am looking for a non built-in.
Thanks ayway.
Thomas
Thomas el 23 de Nov. de 2011
It will if you are asking for an inbuilt functions and wanted to know which toolbox the function belongs to.. :)
If you want tot know all the toolboxes a function is dependent on, try depfun() as mentioned by Fangjun.
More info on depfun(): http://www.mathworks.com/help/techdoc/ref/depfun.html
Sean de Wolski
Sean de Wolski el 23 de Nov. de 2011
That is not necessarily true.
which max
will tell you:
built-in (/Applications/MATLAB_R2009b.app/toolbox/matlab/datafun/@logical/max) % logical method
However, if you run
doc max
you'll see that max is a function in other toolboxes as well and will be invoked when the object is of that class.
If you are interested in the various overloaded methods of a function, call "which -all max". Titus

Iniciar sesión para comentar.

Titus Edelhofer
Titus Edelhofer el 23 de Nov. de 2011
Hi,
usually depfun is indeed the answer, but it has it's limitations as you saw. One rather simple (although not optimal) way is the following: start fresh MATLAB, run your GUI (and click around the buttons that might invoke computations) and try afterwards
license('inuse')
It tells you the toolboxes that have been aquired from the license manager (.i.e., the toolboxes your code used.
Titus
Fangjun Jiang
Fangjun Jiang el 22 de Nov. de 2011

0 votos

try depfun()?

2 comentarios

joeDiHare
joeDiHare el 23 de Nov. de 2011
this looks very interesting, but for a bit more sofisticated function (e.g. my GUI.m), depfun takes ages untill my machine eventually chrashes.
Do you know how could i do?
Fangjun Jiang
Fangjun Jiang el 23 de Nov. de 2011
Try some of the options of depfun(), such as '-toponly', '-quite'.

Iniciar sesión para comentar.

Rubaisha Siddiqui
Rubaisha Siddiqui el 9 de Mayo de 2017

0 votos

can anybody please tell me to which Toolbox trainedClassifer belongs? everytime i run the code its gives an error Undefined variable "trainedClassifier"

Categorías

Más información sobre Debugging and Analysis en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Nov. de 2011

Respondida:

el 9 de Mayo de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by