How can I pack several .m ?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I want to share several ".m" created to run a main function. This main function calls all these ".m" in different order depending on user needs. Is there any way to pack or compile all ".m" in one file? Preferably, this output file can not be modify by users.
0 comentarios
Respuestas (2)
Jan
el 28 de Oct. de 2013
What's wrong with having multiple M-files? An option would be to move all of them into a subfolder called \private\, such that only the main fail in the parent folder can access them.
If you want to have them in one M-file, you need a so called wrapper:
function varargout = MyWrapper(Func, varargin)
varargout = cell(1, nargout);
switch Func
case 'SubFunction1'
varargout = SubFunc1(varargin{:});
...
otherwise
error('Unknown function: %s', Func)
end
function [a,b] = SubFunc1(c, d)
...
Another method is to offer a set of function handles:
function FcnList = MyWrapper
FcnList.Function1 = @Function1;
FcnList.Function2 = @Function2;
...
function [a,b] = Function1(c, d)
...
function [q,p] = Function2(z)
...
Now you obtainthe handles in the first step inside the main function, and call the function handles afterwards:
FcnList = MyWrapper;
[a,b] = FcnList.Function1(c, d);
...
0 comentarios
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!