- Case 1. Same m file. Call it yield.m
How to call a function inside other function in a equation?
2 次查看(过去 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!