Changing function with Iteration

10 次查看(过去 30 天)
Hi all I want to call function/script iteratively as I made mutants of a program and each mutant ends with a iteration number. The problem is that I need to change function name iteratively with each iteration of matlab code. Please help me out. My sample mutants are ArithOper1(input),ArithOper2(input),ArithOper3(input),........
Thanks you in Advance
amir

采纳的回答

Matt Tearle
Matt Tearle 2012-4-19
So you have a bunch of functions called ArithOper1.m, ArithOper2.m, ArithOper3.m, etc? If there's a small enough number of these, you can call the appropriate one using a simple switch construct
switch n
case 1
% call ArithOper1
case 2
% call ArithOper2
end
If this is unwieldy, you can use eval:
fnm = ['ArithOper',num2str(n)];
str = ['z = ',fnm,'(x,y);']; % z = ArithOperN(x,y)
eval(str);
  2 个评论
amir saeed
amir saeed 2012-4-19
Thanks for your prompt response that really works but have a little problem.
I am using the code as below
cd MatlabMutants
files=dir('A*.m')
ilen=size(files,1)
cd ..
x=2;
yorig=ArithOper(x)
cd MatlabMutants
for k=1:ilen
% s=['ArithOper' num2str(k)];
% y(k)=eval(s(x))%%s = ['August' int2str(d) '.dat'];
fnm = ['ArithOper',num2str(k)];
str = ['z = ',fnm,'(x);']; % z = ArithOperN(x,y)
eval(str)
end
cd ..
I have to use the value of computed function. It perform well up to str. On eval(str), it does not return value, as I need this value
Matt Tearle
Matt Tearle 2012-4-20
You need to store the output somehow. eval just evaluates a string as a command, so you're executing the command "z = ArithOperN(x);" (with N being filled in with a given value). So you just keep overwriting z in the loop. What do you want to do with the output? Store it somewhere? Just display it? Whatever it is, change your string (str) to make the appropriate command. Equivalently, add some commands after "eval(str)" that does something with the result which is currently stored in z.

请先登录,再进行评论。

更多回答(1 个)

Sean de Wolski
Sean de Wolski 2012-4-19
  1. FAQ a1 a2 an
  2. doc persistent %use persistent variables
  3. doc switch %make a decision based on something

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by