【发布时间】:2015-08-22 06:05:34
【问题描述】:
在我的代码中,我有一行如下所示:
f=@(test) bf{i}(5);
其中 bf 是一个元胞数组,其中存储了来自 str2func() 的函数,i 是一个存储整数的变量,而 5 是传递给函数的参数。如何让 matlab 使用 i 的当前值评估线?现在当我显示 f 它输出时:
@(test)bf{i}(5)
假设 i=1,我希望它输出:
@(test)bf{1}(5)
虽然从技术上讲,bf{1} 也应该替换为存储在 bf{1} 中的任何函数。如何强制 matlab 评估此语句中的变量?
【问题讨论】:
-
您知道函数句柄保留自己的变量副本吗?因此,稍后更改 i 或 bf 不会改变结果。
-
我想这基本上使我所问的问题变得不可能,您可以将其作为答案,如果您愿意,我会接受
-
这并不是不可能的,只是想知道确保您正确理解函数句柄。
-
当你说你想要它输出
@(test)bf{1}(5)。你的意思是像函数的字符串表示一样,还是你想要数组bf中第一个函数产生的数字输出,输入值@987654326 @ ? -
我希望能够将 i 插入函数调用并取出存储在 bf 中该位置的函数,所以如果 bf{1} 是 rectMath,那么我想要的最终值f 为 @(test)rectMath(5)
标签: matlab