为什么这不起作用?选择中的动态

2023-11-23

好的,我这样做:

Select[Range[1, 20], # > Dynamic[q] &]

然后我创建滑块:

Slider[Dynamic[q], {1, 20}]

它总是返回一个空集!为什么!

Update这样做的目的是当我移动滑块时让设置发生变化。


关键是 请记住,Dynamic 不直接控制有关评估的任何内容。它的作用是在屏幕上创建一个具有评估属性的点。

例如,如果您要在新的 Mathematica 中评估以下内容 会议...

b=5;
Dynamic[a=b];
b=6;
Print[a];

...那么会打印什么呢?不要立即评估,而是考虑一下 在你尝试之前。提示...这是一个技巧问题,但要理解其中的技巧 会让你对 Dynamic 正在做的事情敞开心扉。

答案,我不会在这里透露(因为你真的应该尝试一下) 你自己!)可以用以下事实来解释:Dynamic 从未执行过任何操作 因为它从未出现在屏幕上。分号抑制了屏幕上的显示 Dynamic的外观,以及不出现在屏幕上的Dynamic的评价 一事无成。

更巧妙的是,如果删除所有分号,Print[] 语句(位于 至少在我的机器上)still保持不变,但现在完全 不同的原因。那是因为动态的屏幕放置保证了 其内容将被评估,但不会when他们将受到评估。我的 示例设置了一个竞争条件,至少在我的 v7 机器上, Shift+Enter 评估获胜。

回到你的例子,

Select[Range[1, 20], # > Dynamic[q] &]

这并不像你想象的那样工作,因为在这种情况下是动态的 不评估屏幕上显示的内容。

您可以通过执行以下操作来简单地演示结果...

Dynamic[Select[Range[1, 20], # > q &]]

但我假设您不仅对在屏幕上显示它感兴趣,而且 设置某种副作用。也许您正在将 Select 分配给一个变量。 有两种方法可以使这些副作用发生。一种是将它们放入 Dynamic 的第二个参数。例如...

findset[x_] := (myset = Select[Range[1, 20], # > x &])
Slider[Dynamic[q, (q=#; myset = findset[q])&], {1, 20}]

第二种是生成一个确实具有屏幕外观的 Dynamic,但是一个 这是不明显的。例如,

Row[{
    Slider[Dynamic[q], {1, 20}],
    Dynamic[myset = Select[Range[1, 20], # > q &]; ""]
}]

在这种情况下,实际上正在显示动态。它显示在 滑块。但您看不到它,因为它显示的是一个空字符串。 尽管如此,它还是具有任何 Dynamic 所具有的所有自动更新属性。

有关更多信息,您应该阅读入门和高级动态教程 在 Mathematica 文档中。您还可以在 comp.soft-sys.math.mathematica 上查看我的帖子here(我对此回应进行了部分重新表述)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这不起作用?选择中的动态 的相关文章

  • Mathematica 中的条件数据操作

    我正在努力准备高效数据分析的最佳工具在数学中 我有大约 300 列和 100 000 行 最好的技巧是什么 删除 提取 或简单地 考虑 数据结构的部分 用于绘制例如 我能想到的最棘手的例子之一是 给定一个数据结构 对于第 2 列中的值等于
  • 重新定义 Mathematica 中的非交换乘法

    Mathematicas NonCommutativeMultiply 不会简化诸如 a 0 0 a 0 a 1 1 a a or a a a 2 我想重新定义 去做这个 我使用 NCAlgebra 来执行此操作 但我需要 ReplaceR
  • 确定一个集合是否是另一个集合的子集的有效代码

    我正在寻找一种有效的方法来确定一个集合是否是 Matlab 或 Mathematica 中另一个集合的子集 例子 集合 A 1 2 3 4 集合 B 4 3 集 C 3 4 1 集合 D 4 3 2 1 输出应该是 设置A 集合B和C属于集
  • Mathematica“AppendTo”函数问题

    我是 Mathematica 的新手 在向数据表添加列时遇到了重大故障 我在 Vista 中运行 Mathematica 7 我在RFD上花了很多时间才来这里问 我有一个包含三列五行的数据表 mydata 我正在尝试将两个包含五个元素的列表
  • Mathematica 中的语法着色

    用户定义的函数符号如f in f x 2 x 或变量符号 例如lotto in lotto Table 2 10 自动着色 在 M8 上的语法着色中 没有为此提供选项 仅限未分配值的局部变量或全局符号 这并不完全是您所要求的 但可能对您有用
  • 了解内核-前端通信——为什么我的前端冻结?

    EDIT 只需确认您是否可以重现此内容就会很有用 只需一台计算机即可尝试此操作 无需远程连接 Update似乎其他人无法在 Mac 或 Win7 上重现此问题 因此它要么是 WinXP 特定的 要么是我的机器特定的 此时我要放弃了 最好有一
  • 如何用矩阵的一些不连续的行和列形成子矩阵

    我有一个 10 x 10 矩阵 我想从这个主矩阵形成一个子矩阵 使用除第一 第二和第八列和行之外的所有行和列 我知道 Part 可以用来形成子矩阵 但这些示例主要是关于仅使用连续的行和列形成子矩阵 如果这是你的矩阵 tst RandomIn
  • 在 Mathematica 中导入 Google Sketchup 模型

    Google 的 Sketchup 是一个漂亮 简单的 3D 对象建模器 此外 谷歌还拥有巨大的3D 对象仓库 http sketchup google com 3dwarehouse 因此 如果您在这方面不是特别有天赋 实际上您不必自己做
  • 如何在 Mathematica 中生成这样的图像

    I am thinking of process an image to generate in Mathematica given its powerful image processing capabilities Could anyo
  • 下标变量

    有没有什么方法可以强制 Mathematica 独立于无下标变量来处理下标变量 进一步来说 比如说 我有以下定义 Subscript b 1 1 2 Subscript b 2 3 4 b Join Subscript b 1 Subscr
  • NIntegrate - 为什么在这种情况下 Mathematica 8 的速度要慢得多?

    我有一个 Mathematica 代码 我必须在数值上评估数千个与此类似的积分 NIntegrate Pi Cos Pi 2 x y 1 y 1 y Sin 2 Pi x 1 y Sin Pi 2 x y 1 y E x 1 y x 0 1
  • 如何将 ListPlot 的图形与 Plot 的图形结合起来?

    有没有办法将图形组合起来ListPlot到一个图形Plot 我需要在 ListPlot 的图形上绘制函数的图形 您可以将任何图形与Show函数如下 Show myListPlot myPlot 这概括为一次组合任意数量的图 Show p1
  • 如何在mathematica中自动加载用户定义的函数

    我有一堆在 mathematica 中经常使用的用户定义函数 我想知道是否可以将它们存储在单独的文件中 并且 mathematica 会在启动时加载它们并将它们视为内置函数 这样每当我创建新的 nb 文件时就不必重复定义 类似于 Matla
  • R 中从右到左的运算符结合性可能吗?

    我是 R 新手 我刚刚发现我患有支架恐惧症 https mathematica stackexchange com a 17315 2266 请参阅链接中的评论 我喜欢这种方式magrittr符号 gt 有效 因为它在某些情况下避免了嵌套括
  • 自定义后缀表示法,应用/函数

    我想在 Mathematica 7 中设置以下自定义符号 这种表示法本身并不是特别有用 因此请不要建议现有的替代方案 或指出这只会节省一些击键次数 我想知道是否可以以及如何完成 目前 可以进入 f 2 2 3 f a b c Out b a
  • 将纬度/经度转换为 X/Y,以便在美国地图图像上进行阿尔伯斯投影

    我正在尝试使用 C 或 Javascript 将纬度 经度转换为 X Y 坐标 以将带有 CSS 的 div 左 上 定位到美国地图的背景图像上 美国的标准地图投影是阿尔伯斯投影 如下所示 但 StackOverflow 仅提供参考基本墨卡
  • ArrayPlot 中的自定义 ColorFunction/ColorData(以及类似函数)

    这与西蒙有关关于更改默认 ColorData 的问题 https mathematica stackexchange com q 4712 121在数学中 虽然解决方案都解决了改变的问题ColorData在线图中 我不太发现讨论对改变Col
  • 避免重复调用 Interpolation

    我想在mathematica 中插入一个函数 该函数取决于参数a 实际上它是函数的反函数F这也取决于a 所以我建立我的近似值如下 approx Interpolation Table F 0 1 n a 0 1 n n 100 100 现在
  • 图像分析-光纤识别

    我是图像分析新手 您知道如何以仅获取纤维的方式对该图像进行二值化吗 我尝试过不同的阈值技术等 但没有成功 我不介意应该使用什么工具 但我更喜欢 NET or Matlab PS 我不知道该把答案放在哪里 所以我把它放在StackOverfl
  • Mathematica:获取图形基元和指令

    如何从图形基元和指令中获取图形基元和指令Graphics目的 Leonid Shifrin 在帖子中展示了如何删除它们Mathematica 删除图形基元 https stackoverflow com questions 6317253

随机推荐

  • .split(/\s+/) 和 .split(" ") 之间的区别?

    首先 抱歉我的英语不好 p 我正在查看下一个 js 代码片段 var classes element className split s 该代码会将 和 元素的完整类名拆分为包含每个类的数组 但是 使用之间有什么区别 split s 并使用
  • 如何正确使用lua_pop()函数?

    谁能告诉我如何在 C 中正确使用 lua pop 函数 当我使用 lua get 函数时我应该调用它吗 喜欢 lua getglobal L 某事 lua pop L 1 或者如何使用它 垃圾收集器会在阈值之后清除这些东西吗 谢谢 你打电话
  • Angular:将 XML 转换为 JSON

    我有这种方法 我从远程服务器接收 XML 响应 我需要将 XML 转换为 JSON 以便 Angular 2 可以处理数据 private extractData res Response let xml res body console
  • 静态图像的OpenCV haar训练

    我尝试训练 haar 级联分类以进行卡片套装检测 没有旋转并且图像没有失真 例如 我有文件 Clubs png 其中包含白色背景 20x20 像素的俱乐部图像 这个教程好纠结http note sonots com SciSoftware
  • Orchard CMS中如何处理来自JS的跨域Web服务调用

    我正在尝试从 HTML 小部件内跨域调用 Web 服务 这似乎不起作用 它在同一域下运行得很好 我正在尝试在 Orchard 中创建一个登录页面 可用于登录另一个域上的我的软件 Web 服务正在验证用户凭据并返回一个布尔值 然后该布尔值将生
  • 无法执行 dex:Eclipse 中超出了 GC 开销限制

    当我下载Git项目时OsmAnd并去编译它 Eclipse 返回这些错误 Dex Loader Unable to execute dex GC overhead limit exceeded OsmAnd Conversion to Da
  • 如何在Windows上安装gssapi python模块?

    我目前正在尝试获取gssapi模块让 python 在 Windows 上运行 我的目标是使用 python 模块通过 Active Directory 进行身份验证ldap3 gssapi 是其工作的必要条件 但是 安装失败 因为找不到
  • 如何从 Visual Studio (2003) 中运行我的 Windows CE 项目?

    我正在开发一个遗留应用程序 需要在 VS 2003 中继续 但是 我无法有效地调试它 因为当我尝试运行它时 我收到以下对话框 Deploy 选择要定位的设备 如果所选设备上尚未安装 NET Compact Framework 它将与您的应用
  • 是否有相当于 GetLastInputInfo / LASTINPUTINFO 的 64 位?

    We use 获取最后输入信息并计算与GetTickCount64结果的差值来确定空闲情况 然而 GetLastInputInfo返回的tick计数被写入LASTINPUTINFO的成员dwTime中 它是一个DWORD 因此是一个无符号3
  • 在 Windows 中设置 stdout/stderr 文本颜色

    我尝试使用system color 24 但这并没有改变提示中的颜色 所以经过更多的谷歌搜索后我看到SetConsoleTextAttribute并编写了以下代码 这导致两者stdout and stderr两者都变成红色而不是stdout
  • 为什么这个 for 循环不处理数组的所有元素?

    给出以下脚本 bin bash asteriskFiles sip conf extensions conf for asteriskFile in asteriskFiles do backup current configuration
  • 如何与窗框碰撞,弹起球并将球限制在矩形区域内?

    嘿 我正在尝试使用 pygame 创建一个突破克隆 并且我使用了 self course 180 self course 360 为了弹起球拍的球 我正在研究向量 2 类 但我不知道如何使用它来转换我的球类 如果有人能引导我走向正确的方向
  • iOS - 照片后台上传

    我想创建一个应用程序 它将自动将相机胶卷中的新照片上传到我的网络服务 就像新的 Flickr 应用程序的自动上传功能一样 目前我正在研究如何正确设置它 我猜 iOs 7 的新后台功能可以实现这一点 但是 是否可以从后台获取启动后台传输服务
  • 支持 dropdownlist .NET MVC 中的 optgroup?

    从这个问题继续以编程方式创建下拉列表我希望我的清单有几个optgroup也列出了 目前这可能吗 我知道我需要将 selectList 传递到 dropDownList 但不知道如何将文本 值 optgroup 添加到 selectList
  • 从数组填充嵌套对象?

    我有一个问题 如何从数组创建嵌套对象 IE 我有一个以下数组 var myArr foo bar baz 并需要使其成为一个对象 例如 myObj foo bar baz 我怎样才能正确地做到这一点 Use reduce var myArr
  • 如何从下载的页面中删除所有html标签[重复]

    这个问题在这里已经有答案了 我已经使用 urlopen 下载了一个页面 如何从中删除所有 html 标签 是否有任何正则表达式可以替换所有 标签 我也可以推荐美丽汤这是一个易于使用的 html 解析器 在那里你会做类似的事情 from Be
  • Wav 音频文件压缩不起作用

    是否可以在不降低采样率的情况下压缩 wav 音频文件 我有一个 256 比特率和采样率 8000Hz 的音频文件 我只想将比特率降低到 128 64 kbs 我尝试转换为 mp3 再转换回 wav ffmpeg i 输入 wav 1 mp3
  • 电子邮件屏蔽的正则表达式

    我正在尝试编写正则表达式来掩盖电子邮件地址 下面的例子 input 电子邮件受保护 输出 j e com 我已经尝试过以下方法 但我似乎无法使其正常工作 regex lt 输出 j example en com regex lt 输出 j
  • 使用 Amazon EC2/S3 将本地数据复制到 Hadoop 集群上的 HDFS 时出现问题

    我在 Amazon EC2 上设置了一个包含 5 个节点的 Hadoop 集群 现在 当我登录主节点并提交以下命令时 bin hadoop jar
  • 为什么这不起作用?选择中的动态

    好的 我这样做 Select Range 1 20 gt Dynamic q 然后我创建滑块 Slider Dynamic q 1 20 它总是返回一个空集 为什么 Update这样做的目的是当我移动滑块时让设置发生变化 关键是 请记住 D