函数句柄可用于调用函数,例如
f = @sin;
val = f(1.0);
那么为什么feval
需要呢?
val = feval(f, 1.0);
什么时候有用?
对于feval
,第一个参数可以是带引号的字符串,比函数句柄更灵活。你可以做一些事情,比如有一个基本名称后跟一个索引的函数,如fn1
, fn2
, fn3
,然后使用feval(['fn', num2str(k)], x, y, z);
.
在第 14 版 (MATLAB 7) 之前,feval 是评估函数句柄的方法......或在函数由其名称指定时评估函数。
资料来源:心理模型feval()
。
您不一定总是知道应该使用什么功能;有很多例子
这是一个愚蠢的例子:在文本文件中,在每个数字之后,表示可以作为数学函数评估的不同单词,例如,均值,最小值,最大值,平方,并且任务是计算每个点之后的结果,
2,square,2,power,4,log,10 ...
并且您想编写一个程序来遍历此文本并计算最终结果...
另一个例子是,例如,我想用用户输入函数句柄 f 定义一个绘图函数,所以它必须以某种灵活的方式......
pfun=@(f,x) plot(f(x))