函数句柄可用于调用函数,例如
f = @sin;
val = f(1.0);
那为什么还需要“feval”?
val = feval(f, 1.0);
什么时候有用?
答案 0 :(得分:15)
对于feval
,第一个参数可以是带引号的字符串,比函数句柄更灵活。您可以执行诸如使用基本名称后跟索引的函数,如fn1
,fn2
,fn3
,然后使用feval(['fn', num2str(k)], x, y, z);
动态调用这些函数。
答案 1 :(得分:13)
在第14版(MATLAB 7)之前,feval是方式来评估函数句柄... 或来评估函数是否由它们指定名称的
答案 2 :(得分:0)
不一定总是知道应该使用什么功能;有很多例子
这是一个愚蠢的例子:让,在每个数字之后的文本文件中,可以将不同的单词评估为数学函数,例如,mean,min,max,square,并且任务在计算结果之后各自喜欢,
2,square,2,power,4,log,10 ...
你想编写一个程序来完成这个文本并计算最终结果......
另一个例子是,例如,我想用用户输入函数句柄f定义一个绘图函数,所以它必须以一种灵活的方式......
pfun=@(f,x) plot(f(x))