gpt4 book ai didi

wolfram-mathematica - Mathematica 中的嵌套操作

转载 作者:行者123 更新时间:2023-12-04 08:18:10 27 4
gpt4 key购买 nike

请考虑:

Function[subID, 
pointSO[subID] = RandomInteger[{1, 4}, {5, 2}]] /@ {"subA", "subB"};

Manipulate[
Manipulate[
Graphics[{
Black, Rectangle[{0, 0}, {5, 5}],
White,Point@pointSO[subID][[i]]
},
ImageSize -> {400, 300}],
{i,Range[Length@pointSO[subID]]}],
{subID, {"subA", "subB"}}]

enter image description here

前提是 pointSO[subID]实际上产生不同长度的列表,有没有办法避免有 2 Manipulate假设一个操纵变量取决于另一个?

最佳答案

我不确定我是否得到了您所要求的内容,但我认为您想要的内容类似于以下内容:

给定一个带有一个变量的 UI,比如说一个可以改变大小的数组,以及另一个(从属)变量,它代表一个当前数组的索引,您想从 UI 中使用它来索引数组。

但是您不想在 UI 中修复索引变量布局,因为它在运行时取决于数组的大小,可以使用第二个变量来更改。

这是一个操作,它有一个带有索引控制变量的 UI,它随着数组大小的变化在 UI 上动态更新。

我使用 SetterBar 作为索引(因变量),但您也可以使用 slider 。 SetterBar 让 UI 上的变化更加清晰。

当您更改数组的长度时,索引控制变量会自动更新其最大允许索引以用于匹配数组的当前长度。

当你收缩数组时,索引也会收缩。

我不确定这是否是您想要的,但如果是,您可以调整此方法以适应您的问题

Manipulate[

Grid[{
{Style[Row[{"data[[", i, "]]=", data[[i]]}], 12]},
{MatrixForm[data], SpanFromLeft}
},
Alignment -> Left, Spacings -> {0, 1}
],

Dynamic@Grid[{
{Text["select index into the array = "],
SetterBar[Dynamic[i, {i = #} &], Range[1, Length[data]],
ImageSize -> Tiny,
ContinuousAction -> False]
},

{
Text["select how long an array to build = "],
Manipulator[
Dynamic[n, {n = #; If[i > n, i = n];
data = Table[RandomReal[], {n}]} &],
{1, 10, 1}, ImageSize -> Tiny, ContinuousAction -> False]
, Text[Length[data]], SpanFromLeft
}
}, Alignment -> Left
],

{{n, 2}, None},
{{i, 2}, None},
{{data, Table[RandomReal[], {2}]}, None},
TrackedSymbols -> {n, i}
]

enter image description here

enter image description here

晚上 8:30 更新
仅供引用,刚刚对上面的代码进行了修复以添加所需的额外逻辑。

关于wolfram-mathematica - Mathematica 中的嵌套操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630447/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com