matlab多个函数的调用问题

比如我有100个函数,现在需要调用其中某一个,一个方便的方法是把所有函数放在一个函数的数组里面,用下标来决定访问哪一个函数,这个过程在C/C++里面可以实现,请问在matlab里面怎么实现?

用函数句柄(类似C中函数指针):
假设你的函数名字叫fun,则@fun就是其句柄,然后建立一个cell数组来存:
funs = cell(100,1);
funs{1} = @fun1;
...
funs{100} = @fun100;
然后调用时:
f = funs{n}; % 取出第n个函数句柄
[...] = f(....);% 调用之
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-27
其实可以很巧妙地利用eval函数和cell array来实现
定义一个cell array
比如
funSet={'myfun1', 'myfun2' , ..., 'myfun100'};%比如说100个
注意这个funSet细胞数组是函数名的集合, 每个元素是函数名, 须''引起来
调用时
eval(funSet{1}) %将调用第一个函数
第2个回答  2013-07-27
matlab和C++还是有区别的,你说的这种情况在输入参数都一样的情况下最好的方法是把它放在一个外部函数的m文件里,序号可以作为输入参数。
伪代码ex
function f=f(x1,x2,functionnum)
{
switch functionnum
case 1
f=x1+x2
case 2
f=x2-x1
···
end
}
不知有用没有用
相似回答