Calling other function from another m file

조회 수: 73 (최근 30일)
Dharmesh Joshi
Dharmesh Joshi 2022년 12월 27일
댓글: Voss 2022년 12월 28일
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

채택된 답변

the cyclist
the cyclist 2022년 12월 27일
편집: the cyclist 2022년 12월 27일
External functions are actually known to MATLAB by their filename, so you do need to put it in a separate file.
  댓글 수: 3
Rik
Rik 2022년 12월 27일
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
the cyclist 2022년 12월 27일
@Dharmesh Joshi, check out this documentation about function precedence, for a full answer to your question.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Steven Lord
Steven Lord 2022년 12월 27일
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
Dharmesh Joshi
Dharmesh Joshi 2022년 12월 27일
Is there an example of this?
Voss
Voss 2022년 12월 28일
@Dharmesh Joshi: See the attached m-file for a simple example of this.
f = main_function
f = function_handle with value:
@local_function
f(4)
ans = 4

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by