Nested functions in a class - Call the function without including the class name as filename.function
    12 次查看(过去 30 天)
  
       显示 更早的评论
    
Hello MATLAB experts,
I defined a class with different functions that are called from external .m files but also call eachother reciprocally, that is the functions call other functions in the same class. As far as I could understand, I always have to use the call form classname.function to call a function from this class. However, I would rather avoid it for the function that are all in the same class in the same file (similarly to local functions), to make the code clearer.
For example:
classdef small_test
    properties
        PropertyName
    end
    methods (Static)
        function d = sum_scale_test(a,b)
            c = a+b;
            d = small_test.scale_test(c);
        end
        function b = scale_test(a)
            b=10*a;
        end
    end
end
  Is there a way to skip the long call:      
small_test.scale_test
and just use
scale_test
?
Maybe with some access option?
Thank you for the help!
0 个评论
采纳的回答
  Mitch Lautigar
      
 2022-6-1
        
      编辑:per isakson
      
      
 2022-6-3
  
      You can put subfunctions/nested functions below the Class call (after the end for classdef) and therefore have local functions for the class to reference. This will look like the following:
classdef <namehere>
    properties
        %....
    end
    methods
        function obj = dosomething(obj)
        end
    end
    function function_callsub1
        %do stuff here
    end
3 个评论
  Mitch Lautigar
      
 2022-6-1
				No. They are local functions in this case. If you want regular functions, you need to create the functions outside of the class. 
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Handle Classes 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

