Passing Functions and m-files to functions
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi Mathworks,
I have an m-file which codes up a system of differential equations;
9D_system
This has various parameters in it, and I have a few parameter schemes for specifying the values to these parameters;
P1.m, P2.m, P3.m
I want to be able to specify which parameter scheme I endow the system with, and then solve this system of differential equations with ode15s.
How do I do this?
Moreover, the parameter schemes
P1.m, P2.m, P3.m
each call functions (some of the parameters are functions of other parameters, and so must be calculated by these called functions). Thus the ode will have a series of nested functions being called!!
Any help on this would be greatly appreciated. :)
Linford
1 comentario
Respuesta aceptada
Sean de Wolski
el 12 de Feb. de 2013
@Linford, these are the ways we recommend passing extra parameters:
e.g:
ode45(@(t,y)myfun(t,y,@p1)
And
function x = myfun(t,y,pfun)
stuff = pfun();
x = do_things_with(stuff,t,y)
1 comentario
Jan
el 12 de Feb. de 2013
Editada: Jan
el 12 de Feb. de 2013
Or add the parameters as additional arguments to the anoymous function directly. See also: http://www.mathworks.de/matlabcentral/answers/1971
Más respuestas (2)
José-Luis
el 12 de Feb. de 2013
myStr = 'P1.m'
function [result] = myFun(someArg, myStr)
[str str] = fileparts(myStr);
run(str); %calling your script
%Do your thing
1 comentario
Linford Briant
el 12 de Feb. de 2013
Editada: Linford Briant
el 12 de Feb. de 2013
Ver también
Categorías
Más información sobre Ordinary Differential Equations 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!