在枫树中,如何创建一系列交替变量?
In maple, how to create a sequence of alternating variables?
我是 Maple 的新手,我想创建以下列表:
U__N := u__1[0], u__2[0], u__1[1], u__2[1], u__1[2], u__2[2], u__1[3], u__2[3], u__1[4], u__2[4], u__1[5], u__2[5]
我想到了以下两个选项。对于这两者,我都缺乏最后一步的知识
选项 1
U__N := seq([u__1[k], u__2[k]], k = 0 .. 5)
这给了我一个嵌套列表: U__N := [u__1[0], u__2[0]], [u__1[1], u__2[1]], [u__1[2], u__2[2]], [u__1[3], u__2[3]], [u__1[4], u__2[4]], [u__1[5], u__2[5]]
。但是,现在我不知道如何“取消嵌套”嵌套列表。
选项 2:
创建两个单独的列表
U__N2 := seq(u__2[k], k = 0 .. 5 - 1)
哪个returnsU__N1 := u__1[0], u__1[1], u__1[2], u__1[3], u__1[4]
U__N2 := seq(u__2[k], k = 0 .. 5 - 1)
其中 returns U__N2 := u__2[0], u__2[1], u__2[2], u__2[3], u__2[4]
。
现在我想concatenate/combine交替使用这两个列表。
您对这两个选项之一或替代解决方案有什么建议吗?
使用 Flatten 给了我想要的解决方案
我更愿意创建 pair-wise 部分然后直接使用它们,而不是形成整个 list-of-lists 和 Flatten
它。
seq
命令的 special-evaluation 规则允许在 after k
获得具体数值之前不计算其第一个参数.
这允许您使用 op
命令调整您的第一个方法并提取 pair-wise 内部列表的操作数。
seq(op([u__1[k], u__2[k]]), k = 0 .. 5);
u__1[0], u__2[0], u__1[1], u__2[1],
u__1[2], u__2[2], u__1[3], u__2[3],
u__1[4], u__2[4], u__1[5], u__2[5]
seq([u__1[k], u__2[k]][], k = 0 .. 5);
u__1[0], u__2[0], u__1[1], u__2[1],
u__1[2], u__2[2], u__1[3], u__2[3],
u__1[4], u__2[4], u__1[5], u__2[5]
[...][]
中的尾随 []
的作用类似于 op([...])
。
我是 Maple 的新手,我想创建以下列表:
U__N := u__1[0], u__2[0], u__1[1], u__2[1], u__1[2], u__2[2], u__1[3], u__2[3], u__1[4], u__2[4], u__1[5], u__2[5]
我想到了以下两个选项。对于这两者,我都缺乏最后一步的知识
选项 1
U__N := seq([u__1[k], u__2[k]], k = 0 .. 5)
这给了我一个嵌套列表: U__N := [u__1[0], u__2[0]], [u__1[1], u__2[1]], [u__1[2], u__2[2]], [u__1[3], u__2[3]], [u__1[4], u__2[4]], [u__1[5], u__2[5]]
。但是,现在我不知道如何“取消嵌套”嵌套列表。
选项 2:
创建两个单独的列表
U__N2 := seq(u__2[k], k = 0 .. 5 - 1)
哪个returnsU__N1 := u__1[0], u__1[1], u__1[2], u__1[3], u__1[4]
U__N2 := seq(u__2[k], k = 0 .. 5 - 1)
其中 returns U__N2 := u__2[0], u__2[1], u__2[2], u__2[3], u__2[4]
。
现在我想concatenate/combine交替使用这两个列表。
您对这两个选项之一或替代解决方案有什么建议吗?
使用 Flatten 给了我想要的解决方案
我更愿意创建 pair-wise 部分然后直接使用它们,而不是形成整个 list-of-lists 和 Flatten
它。
seq
命令的 special-evaluation 规则允许在 after k
获得具体数值之前不计算其第一个参数.
这允许您使用 op
命令调整您的第一个方法并提取 pair-wise 内部列表的操作数。
seq(op([u__1[k], u__2[k]]), k = 0 .. 5);
u__1[0], u__2[0], u__1[1], u__2[1],
u__1[2], u__2[2], u__1[3], u__2[3],
u__1[4], u__2[4], u__1[5], u__2[5]
seq([u__1[k], u__2[k]][], k = 0 .. 5);
u__1[0], u__2[0], u__1[1], u__2[1],
u__1[2], u__2[2], u__1[3], u__2[3],
u__1[4], u__2[4], u__1[5], u__2[5]
[...][]
中的尾随 []
的作用类似于 op([...])
。