为指定工作区中的变量赋值

您所在的位置:网站首页 燕山银座地下停车场收费 为指定工作区中的变量赋值

为指定工作区中的变量赋值

2023-05-17 09:03| 来源: 网络整理| 查看: 265

function m = minRand(n) assignfh A = fh(n) m = min(A(:)); end function assignfh fh = @(dim)rand(dim); assignin('caller','fh',fh) end

使用输入值 2 调用该函数。

m = minRand(2)A = 0.3486 0.1423 0.0419 0.0766 m = 0.0419

函数句柄的计算结果是一个 2×2 的随机数组。

创建另一个版本的函数,称为 minRand2,用局部函数覆盖函数句柄定义中的 rand 函数。

与 minRand 示例相似,assignfh2 局部函数将 fh 分配给 minRand2 的工作区。assignfh2 函数使用名为 rand 的变量覆盖其工作区中的 rand 函数并创建函数句柄。这种行为与匿名函数一致 - 函数句柄是使用创建函数时可用的变量创建的。因此,在 minRand2 中对函数句柄进行计算后,会使用 n 对 assignfh2 中定义的 rand 数组进行索引。

function m = minRand2(n) assignfh2(n) A = fh(n) m = min(A(:)); end function assignfh2(n) rand = 13*ones(n); fh = @(dim)rand(dim); assignin('caller','fh',fh) end

使用输入值 2 调用该函数。

m = minRand2(2)A = 13 m = 13

将匿名函数分配到调用方工作区时,MATLAB 将函数句柄的定义放入调用方工作区的变量中。调用 assignin 的函数将计算函数句柄。虽然这些示例说明了如何将变量分配到调用方工作区,但最好的做法是让局部函数 assignfh 返回函数句柄作为输出参数。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3