MATLAB: How to call a user defined function in a method of a class

calldefinedfunctionMATLABmethoduser

How do I call a user defined function in a method of a class?
I have properties and methods. I want to call a user defined function in the method similar to the way I call sin() function. How can I do that?

Best Answer

Here is an example that demonstrates calling an user defined function in a method of a class. 
This example uses two files, namely, the class definition file, "BasicClass.m", and the user defined function, "roundOffAndSquare.m". Please find these files attached.
The example class, "BasicClass" has a property, "Value", and a method, "multiplyBySquared(obj,n)" which calls an user defined function "roundOffAndSquare(val)". The class definition is as follows:
classdef BasicClass
properties
Value
end
methods
function r = multiplyBySquared(obj,n)
val = obj.Value;
squaredVal = roundOffAndSquare(val);
r = squaredVal * n;
end
end
end
The user defined function, "roundOffAndSquare(val)" is defined as follows:
function r = roundOffAndSquare(val)
r = round(val)^2;
end
This function rounds the input "val" to the to the nearest integer and returns the square of the rounded value. Please note that this will work as long as both the files are in the path!
In order to test the functionality, please execute the following commands in the command line:
>> a = BasicClass
>> a.Value = pi;
>> multiplyBySquared(a,3)
This command calls the method "multiplyBySquared", that in turn calls the user defined function, "roundOffAndSquare(val)" that is present in the path, and returns the answer as 27.