matlab - 如何让 Matlab 做惰性求值?
问题描述
我正在尝试以数字方式执行以下操作。
b = 2;
f1 = @(x) (b<1).*x./(2-b);
R = integral(f1,0,1);
这段代码给了我R=NaN
。我知道 Matlab 可能会评估x./(2-b)
并发现分数底部有一个 0,它会立即生成一个NaN
. 然后,所有后续操作都被 this 毁掉了NaN
。
我想要的是:Matlab 从左到右进行操作,即首先检查b<1
. 如果b<1
违反,则停止评估括号中的下一件事(避免得到NaN
)。
我不确定如何实现这个目标,或者 Matlab 是否有能力做到这一点。
我的实际计算非常复杂,涉及大量此类逻辑比较。任何意见和建议都非常感谢!
解决方案
推荐阅读
- c++ - 构建 Boost Beast 示例 websocket_server_sync 时出现编译错误
- pytorch - 使用布尔张量对张量进行切片
- python - 用 RStudio 之类的东西开发 Python
- javascript - 如何只允许一个活动的 useState
- python - 单击按钮后如何将 QSpinBox 中的数据保存到变量中?
- c++ - CMakeLists.txt:4 处的 CMake 错误(add_executable)
- java - 弹簧数据。使用本机插入查询保存 BigDecimal 属性
- android - ConstraintLayout 与父级不完全匹配
- c# - 是否可以将 Database First EF 6 与 SKIP LOCKED 命令一起使用?
- azure - 无法在 Azure CosmosDB (MongoDB) 中写入