Using socFunctionAnalyzer with methods defined in a class

5 views (last 30 days)
I am trying to benchmark the performance of a few algorithms each defined in its separate class. Is there a way to run socFunctionAnalyzer for methods defined in a class? I tried creating separate .m files and then passing the class object as a global variable but this is not allowed in socFunctionAnalyzer as well. Are there any ways where I can count the number of addition and mulitplication operations in a class method without having to completely rewrite it?

Accepted Answer

Umang Pandey
Umang Pandey on 9 Nov 2023
Hi,
I understand that you would like to compute the number of addition and multiplication operations executed by a method within a class using the "socFunctionAnalyzer" function.
While the "socFunctionAnalyzer" function does not natively accept a class or its methods as direct input parameters, there is a workaround to this. You can implement a wrapper function that instantiates an object of your class and subsequently calls the method in question.
Here's a demonstration of this approach:
1. Define your class and its method in a file named "MyClass.m"
classdef MyClass
methods
function result = myMethod(obj, input)
% Method implementation
temp = 0;
for i=1:input
temp = temp + i;
end
result = temp*2;
end
end
end
2. Next, create a wrapper function in a separate file, which we'll call "wrapperFunction.m". This function will instantiate an object of "MyClass" and call the "myMethod" function:
function result = wrapperFunction(input)
obj = MyClass();
result = obj.myMethod(input);
end
3. Finally, from the MATLAB Command Window, you can call the "socFunctionAnalyzer" function on the "wrapperFunction.m" file:
socFunctionAnalyzer('wrapperFunction.m',FunctionInputs= {10},IncludeOperator={'+','*'})
This command will generate a report detailing the number of operations in the "myMethod" function. A link to this report will be provided in the Command Window.
Best,
Umang

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!