- Case 1. Same m file. Call it yield.m
How to call a function inside other function in a equation?
1 回表示 (過去 30 日間)
古いコメントを表示
I have one function function B=magnetic flux(x)
B=x(1)+x(2)+x(3);
end
Now I have to call B in other function function y=yield(x)
where y= x(1)*e^-B where B is magnetic flux
How to do it without writing the equation of B in second function
0 件のコメント
回答 (1 件)
Yongjian Feng
2022 年 1 月 25 日
編集済み: Yongjian Feng
2022 年 1 月 25 日
It depends on whether you need to use B in anywhere else. If B is only used in your function yield, you can put it in the same m file, otherwise create a separate file for B.
function y=yield(x)
B = magnetic_flux(x);
y= x(1)*e^(-B)
end
% internal function
function B=magnetic_flux(x)
B=x(1)+x(2)+x(3);
end
2. Case 2. Two m files. Put yield function in yield.m, and magnetic_flux function in magnetic_flux.m.
2 件のコメント
Yongjian Feng
2022 年 1 月 25 日
The simpliest way is to put both .m files in the same folder, then when access one file, the other file is also available. So two m files:
- yield.m
% you have one function in this file. Matlab will force you to name the
% file the same as the function name
function y=yield(x)
% magnetic_flux.m is in the same folder, so you can call it
B = magnetic_flux(x);
y= x(1)*e^(-B)
end
2. magnetic_flux.m (Please note the _ in the file name!)
% same here. One function in a m file. Matlab will force you to use the
% function name as the file name
function B=magnetic_flux(x)
B=x(1)+x(2)+x(3);
end
参考
カテゴリ
Help Center および File Exchange で Function Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!