I want to log the name of all the functions that are called for each Object instance in MATLAB!
For example if we have this class:
classdef ClassName
methods
function obj = ClassName()
...
end
function ordinaryMethod()
...
end
end
end
And i run the following code:
testObj = ClassName();
testObj.ordinaryMethod();
I can somehow log that the ordinaryMethod was called for testObj which is a instance of ClassName. To make it clear, I dont want to just get a list of all the function names, I only need those that are used in my program.
Can anyone give me ideas, how i can achieve this? Ideal solution is that I don't have to change the function codes!

 채택된 답변

Guillaume
Guillaume 2016년 9월 22일
편집: Guillaume 2016년 9월 22일

0 개 추천

You could simply use the profiler which will return the list of all functions called by your code (when you run it), then filter that list by the class name:
profile('on'); %starts the profiler
%run your code
p = profile('info'); %stops the profiler
allfunctions = vertcat(p.FunctionName);
classfunctions = allfunctions(strncmp(allfunctions, 'ClassName>', numel(className))) %omly keep ClassName methods

댓글 수: 2

this works just fine, but the problem is that using profiler slows down matlab significantly and therefore I can not use this solution. thanks anyway :)
It might be worth trying &nbsp tracer4m by per isakson

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Environment and Settings에 대해 자세히 알아보기

제품

질문:

2016년 9월 22일

댓글:

2016년 9월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by