帮助中心帮助中心
str2func
eval
从特征向量构造函数处理
跳频= str2func (str)
例子
跳频= str2func (str)构造一个函数处理,跳频,从一个匿名函数的函数名或文本表示。
str
跳频
函数处理使用str2func没有访问变量之外的本地工作区或嵌套的函数。如果你的函数处理包含这些变量或函数,MATLAB®当你调用处理抛出一个错误。同样的,如果你使用一个匿名函数的文本表示,由此产生的函数处理没有获得私人或本地函数。
全部折叠
把特征向量“的”一个函数处理,调用的使用处理函数。
“的”
的
c =“的”;跳频= str2func (c)
跳频=function_handle与价值:@ones
跳频(1、5)
ans =1×51 1 1 1 1
一个特征向量代表一个匿名函数转换为一个处理函数。工作空间变量并不可用str2func函数。因此,包括特征向量中的值是必要的对表达式求值,定义为函数的输入。
定义一个特征向量代表匿名函数7x- 13。将特征向量转换为一个函数处理。
str =“@ (x) 7 * x-13”;跳频= str2func (str)
跳频= @ (x) 7 * x-13
使用处理调用匿名函数。
跳频(3)
ans = 8
如果你在你的角色包括工作空间变量的向量,str2func创建函数处理,但MATLAB抛出一个错误当你调用函数处理。
一个= 13;str =“@ x (x) 7 *”;跳频= str2func (str);跳频(3)
未定义的函数或变量a。@ x (x) 7 *误差
创建一个函数,它返回两个函数句柄用来模拟卷骰子。第一个死(d1)返回一个从1到6的数字,但是第二个骰子(d2)总是返回1。
d1
d2
创建以下函数在MATLAB路径文件夹。当str2func是使用一个特征向量代表一个匿名函数,它没有访问本地函数。因此,MATLAB调用内置的兰迪函数,并返回一个从1到6的数字。的eval有访问本地函数,所以d2使用重载兰迪总是返回1。
兰迪
函数(d1, d2) = diceRoll str =' @()兰迪([1 - 6],1)”;d1 = str2func (str);d2 = eval (str);结束函数r =兰迪(~ ~)r = 1;结束
在命令提示符处,调用diceRoll函数。
diceRoll
(p1, p2) = diceRoll
p1与价值= function_handle: @ randi () ((1,6), 1) p2与价值= function_handle: @ randi () ((1,6), 1)
这两个p1和p2似乎与相同的匿名函数。
p1
p2
调用函数处理。结果从p1从1到6不等。结果从p2总是1。
p1 () p2 ()
= 5岁= 1
文本转换为一个处理函数,指定为一个函数的名称或一个特征矢量或字符串标量表示一个匿名函数。
例子:str = '因为'
str = '因为'
例子:str =“@ (x) x ^ 2》。
str =“@ (x) x ^ 2》。
一个函数处理存储变量值不使用时保持其原始值func2str将它转换成一个特征向量,然后将其转换回处理str2func。
func2str
使用笔记和限制:
输入参数必须是常数/在编译时知道。
代码生成不支持一个代表一个匿名函数的输入参数。万博1manbetx
backgroundPool
ThreadPool
这个函数完全支持线程的环境。万博1manbetx有关更多信息,请参见MATLAB函数线程环境中运行。
func2str|功能
功能
你有一个修改版的这个例子。你想打开这个例子与编辑?
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室