How to declare a function as Static if it is defined as an individual file under the class folder?

2 views (last 30 days)
埃博拉酱
埃博拉酱 on 6 Aug 2021
Answered: Dave B on 6 Aug 2021
In the class definition file we define Static functions as such:
methods(Static)
function SomeFunction()
end
end
However, what if the function is defined as an individual file under the class folder? Can I make some declarations like a .h file in C++ or something like:
methods(Static)
SomeFunction(); %This function is actually defined in the class folder
end

Answers (1)

Dave B
Dave B on 6 Aug 2021
You can do exactly what you're describing. The trick (if there is one) is that you leave the keyword function out in the classdef file. Here's an example
Create a folder @foo
Inside @foo, create a foo.m:
classdef foo
methods (Static)
argout = staticmethod1(argin)
staticmethod2(argin)
end
end
And a staticmethod1.m:
function argout = staticmethod1(argin)
argout = argin^2;
end
And a staticmethod2.m:
function staticmethod2(argin)
disp("argin=" + argin)
end
Test:
>> foo.staticmethod1(3)
ans =
9
>> foo.staticmethod2("asdf")
argin=asdf

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by