Call functions with names generated from strings
67 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am writing a piece of code for a 2 phase oil and water reservoir simulation. Assume I have a structure called fluid, in which there are several functions for parameteres for each phase, appropriately named:
fluid.muO @(p) %(oil viscosity as a function of pressure)
fluid.muW @(p) %(water viscosity as a function of pressure)
If I want to make a general function in which the phase is an input parameter, how do I use this string to call the function above? I tried:
phase = 'O'
eval = strcat('fluid.mu',phase)
Where to go from here I do not know, but I wish to use the variable phase to call fluid.muO and fluid.muW. Is it even possible?
Cheers
0 Kommentare
Akzeptierte Antwort
Iman Ansari
am 3 Mai 2013
Hi.
fluid.muO=@(p) p.^2+1;
fluid.muW=@(p) cos(p)+2*sin(p);
phase = 'O';
name = strcat('fluid.mu',phase);%['fluid.mu',phase]
f=eval(name);
f([0 1 3])
Weitere Antworten (1)
the cyclist
am 3 Mai 2013
Here is one way:
fluid.muO = @(p) p;
fluid.muW = @(p) 2.*p;
phase = 'O';
eval(['F = @(p) fluid.mu',phase,'(p)'])
p = 1:10;
F(p)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Waveform Generation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!