在 APL 中组合向量(使用每个向量的元素创建元组)

syn*_*gma 3 vector apl

我有 2 个向量:

\n\n
a \xe2\x86\x90 1 2 3\nb \xe2\x86\x90 5 6 7\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想创建一个包含 2 元素向量元素的嵌套数组,其中一个元素来自 ab (元组),即:

\n\n
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x821 5\xe2\x94\x822 6\xe2\x94\x823 7\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98 \n
Run Code Online (Sandbox Code Playgroud)\n\n

我该如何在 APL 中做到这一点?我找不到任何弹性解决方案(a[1],b[1]) (a[2],b[2])(我也尝试过具有该\xe2\x8a\x83功能的外部产品,但没有成功)。

\n

Eli*_*son 5

尝试这个:

\n\n
\xe2\x8a\x82[2] a,[1.5]b\n
Run Code Online (Sandbox Code Playgroud)\n\n

第一部分:a,[1.5]b合并两个数组,创建一个二维数组,每一列都是变量a和b的内容。

\n\n

然后,\xe2\x8a\x82[2]将每一行封装成对,从而得到所需的输出。

\n\n

请注意,如果您使用 Dyalog,则可能必须使用 \xe2\x86\x91 而不是 \xe2\x8a\x82。我认为这取决于 \xe2\x8e\x95ML 变量的值,但我不使用 Dyalog,所以我无法测试它。

\n

  • 上面的示例非常通用,但您实际上可以像这样解决您的具体情况:`a,¡ b`。我真傻,竟然没有想到这一点。 (3认同)