【发布时间】:2019-10-23 23:49:24
【问题描述】:
我有一个特定的函数,比如myFunc,它有一个参数,比如funcHandleArg,它应该是一个function_handle 实例。但是,这个参数不限于一个function_handle,实际上可能是一组function_handles。因为 Matlab 不接受函数句柄 [func_handle1, func_handle2] 的非标量数组,所以我必须将此参数作为 function_handles {func_handle1, func_handle2} 的元胞数组传递。
现在,我的问题是,我如何确保 both funcHandleArg = func_handle1 和 funcHandleArg = {func_handle1, func_handle2} 被验证并接受 作为输入参数。总结一下,我想要这样的东西:
function output = myFunc(funcHandleArg, someOtherStuff)
arguments
funcHandleArg function_handle "AND cells of function_handles"
someOtherStuff otherStuff
end
output = someFunctionOf(funcHandleArg, someOtherStuff)
end
【问题讨论】:
-
您可以使用
iscell和isa(funcHandleArg,'function_handle')来确定您拥有的变量类型。 -
我明白你的意思,定义一些验证器函数我可以验证我的参数是
cell还是function_handle。但是,这并不能解决我的问题,因为:1) 我不检查我的论点是否是function_handles 的单元格 2) 我没有简单的单行在arguments块中。
标签: matlab function validation