Calling other function from another m file
    32 views (last 30 days)
  
       Show older comments
    
Hi 
I am trying to call a function from another .m file.
The primary function which is the same name as the file can be called very easily.
But is it possilbe to call one of the sub function from that same .m file?
Or do i need to place it in its seperate file?
Thanks
0 Comments
Accepted Answer
  the cyclist
      
      
 on 27 Dec 2022
        
      Edited: the cyclist
      
      
 on 27 Dec 2022
  
      External functions are actually known to MATLAB by their filename, so you do need to put it in a separate file.
3 Comments
  Rik
      
      
 on 27 Dec 2022
				Expanding on this answer:
You may notice that a function will still work as expected if you change the name of the main function to no longer match the file name. Problems will start occurring if you put your main function after the first function (this will throw an error or simply not execute).
The mere fact you want to call this subfunction means that it deserves to be a separate function, as it apparently simply an implementation detail for the main function in the file.
  the cyclist
      
      
 on 27 Dec 2022
				@Dharmesh Joshi, check out this documentation about function precedence, for a full answer to your question.
More Answers (1)
  Steven Lord
    
      
 on 27 Dec 2022
        Only the main function in a function file is directly callable from outside the file. Local functions can be called indirectly if you have a function handle to the local function. In order to do this the function handle would need to be created inside the main function and returned from it.
2 Comments
  Voss
      
      
 on 28 Dec 2022
				@Dharmesh Joshi: See the attached m-file for a simple example of this.
f = main_function
f(4)
See Also
Categories
				Find more on Get Started with MATLAB in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



