- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
MATLAB 将变量与匿名函数一起存储。这是一个来自 the documentation 的工作原理示例.
Variables in the Expression:
Function handles can store not only an expression, but also variables that the expression requires for evaluation.
For example, create a function handle to an anonymous function that requires coefficients a, b, and c.
a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c;Because a, b, and c are available at the time you create parabola, the function handle includes those values. The values persist within the function handle even if you clear the variables:
clear a b c
x = 1;
y = parabola(x)
y =
31.5000
据推测,a b 和 c 的值与函数一起存储,即使它是从 mat 文件中保存和重新加载的。在实践中,我发现这些值不会持续存在,尤其是在最初创建该函数的代码被编辑的情况下。
有没有办法根据变量的数值来定义函数句柄?我想要某种形式的东西
>> a = 1.3;
>> b = .2;
>> c = 30;
>> parabola = @(x) a*x.^2 + b*x + c
parabola = @(x) a*x.^2+b*x+c
>> parabola2 = forceEval(parabola)
parabola2 = @(x) 1.3*x.^2+.2x+30
编辑:也许我的问题出在文件关联上,但是当我编辑我最初在其中定义匿名函数的文件时,出现如下错误:
无法找到函数@(ydata)nr/(na*dt)*normpdf(ydata,mu(j),s(j))./normpdf(ydata,mu_a(j),s_a(j))C:...\m文件名.m。 (我将 mfile 的名称更改为 mfilename)
对于这类问题,我通常的解决方案是使用 func2str() 来删除文件依赖性,但这也会删除包括参数值在内的工作区信息。所以我想强制所有参数在函数定义中采用它们的数值。
最佳答案
值存储在函数中。正如我之前在不同答案中所展示的那样,您可以使用 functions
命令进行检查:
>> a = 1.3; b = .2; c = 30;
>> parabola = @(x) a*x.^2 + b*x + c;
>> x = 1;
>> y = parabola(x)
y =
31.5
>> clear a b c
>> y = parabola(x)
y =
31.5
>> fi = functions(parabola)
fi =
function: '@(x)a*x.^2+b*x+c'
type: 'anonymous'
file: ''
workspace: {[1x1 struct]}
>> fi.workspace{1}
ans =
a: 1.3
b: 0.2
c: 30
即使您将句柄保存到磁盘:
>> save parabolaFun.mat parabola
>> clear parabola a b c
>> load parabolaFun.mat parabola
>> y = parabola(x)
y =
31.5
>> fi = functions(parabola)
fi =
function: '@(x)a*x.^2+b*x+c'
type: 'anonymous'
file: ''
workspace: {[1x1 struct]}
>> fi.workspace{1}
ans =
a: 1.3
b: 0.2
c: 30
您可以像这样简化抛物线句柄的创建:
function p = makeParabola(a,b,c)
p = @(x) a*x.^2 + b*x + c;
end
You can save and load function handles in a MAT-file using the MATLAB® save and load functions. If you load a function handle that you saved in an earlier MATLAB session, the following conditions could cause unexpected behavior:
- Any of the files that define the function have been moved, and thus no longer exist on the path stored in the handle.
- You load the function handle into an environment different from that in which it was saved. For example, the source for the function either does not exist or is located in a different folder than on the system on which the handle was saved.
In both of these cases, the function handle is now invalid because it is no longer associated with any existing function code. Although the handle is invalid, MATLAB still performs the load successfully and without displaying a warning. Attempting to invoke the handle, however, results in an error.
因此,如果您从文件支持的函数(不是脚本,没关系)创建句柄,然后修改或删除文件,句柄将变得无效。
关于matlab - 强制评估 MATLAB 匿名函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64137652/
所以 promises 对我来说是相当新的,但我喜欢这个想法。 之前... 我以前用过这个,它只在文件被完全读取并按预期工作后才简单地返回数据: function something{ fo
当我尝试编译时出现以下错误: In member function 'double search::IDAstar::dfs(const State&, double)': 153:18: erro
最接近下面的是什么?不幸的是,下面的方法名称编译错误。 int val = delegate(string s) { return 1; }("test"); 我也尝试了 (...)=>{..
1、评论提交超时: 大家可能会发现,在提交评论非常缓慢时最容易出现“匿名”现象,这种情况主要是由于评论提交时执行时间过长引起的,可能是装了比较耗时的插件(比如Akismet等);很多博
我想在同一个表中使用一个键插入一个匿名表,如下所示: loadstring( [[return { a = "One", b = a.." two" }]] ) 在我看来,这应该返回下表: {
有人知道免费的匿名 smtp 服务吗?我想让我的应用程序的用户能够偶尔向我发送一封匿名电子邮件,而无需配置输入他们电子邮件帐户的服务器。我想我可以为此目的设置一个 gmail 帐户并将凭据嵌入到应用程
我有这个数据补丁: ALTER TABLE MY_TABLE ADD new_id number; DECLARE MAX_ID NUMBER; BEGIN SELECT max(id)
假设我有以下数据框。 Person_info (Bob, 2) (John, 1) (Bek, 10) (Bob, 6) 我想通过保持它们的值(value)来匿名。 Person_info (Pers
根据多个国家/地区的法律要求,我们在日志文件中匿名化用户的 IP 地址。使用 IPv4,我们通常只是匿名化最后两个字节,例如。而不是 255.255.255.255我们记录255.255.\*.\*
我正在学习有关 Scala 的更多信息,但在理解 http://www.scala-lang.org/node/135 中的匿名函数示例时遇到了一些麻烦。 .我复制了下面的整个代码块: object
我正在开设一个 Commerce 网上商店。 我想添加 Commerce 愿望 list ,但现在该模块仅适用于注册用户,因为未注册它不起作用。 我将显示 block 中的角色设置为匿名,但即使在更改
我正在使用发现的 Google Apps 脚本 here让匿名用户将文件上传到我的 Google 云端硬盘。 我想要的是脚本使用表单上输入的名称创建一个文件夹,然后将文件存放在该文件夹中。 到目前为止
我遇到的情况是,我正在等待一些事件的发生。我看到很多关于如何使用命名函数使用 setTimeout 的好例子,但是有没有办法使用某种匿名方法来设置超时? 代码目前看起来像这样: testForObje
我一直在阅读一些关于 Android 内存泄漏的文章,并观看了来自 Google I/O 的这个有趣的视频 on the subject . 尽管如此,我仍然不完全理解这个概念,尤其是当它对用户安全或
我正在尝试适应 Spring JDBC,但让我烦恼的是使用这些匿名类,我们不能传递任何局部变量,除非它们是最终的,这可能很容易安排,但是如果我需要循环一个怎么办?数组还是集合?我无法将“FedMode
我正在尝试将数据输入到 Oracle 数据库中。这将是一个带有多个参数的存储过程……我的意思是像 27 个参数(别问,我没有设计它)…… 现在我必须以某种方式填充此存储过程的参数...存储过程采用的大
我之前问过这个问题:Combine a PartialFunction with a regular function 然后意识到,我实际上并没有问对。 所以,这是另一个尝试。 如果我这样做: va
我想从 C++ 执行一个匿名的 Qt 脚本函数,但不知道要使用的 QScriptContext。 这是脚本: { otherObject.Text = "Hello World"; setTi
我有一个返回 promise 的函数。 (本例中为 foo) 我尝试在声明为匿名的解析函数中调用此函数。 我已经尝试过使用this 但这不起作用。 我的代码是这样的 var foo = functio
这个问题的灵感来自这个 excellent example .我有 ASP.NET Core MVC 应用程序,我正在编写 unit tests为 Controller 。其中一种方法返回带有匿名类型
我是一名优秀的程序员,十分优秀!