gpt4 book ai didi

wolfram-mathematica - 组合两个列表和一个数组以创建 3D 数据列表

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

假设我有以下三个列表:

x = {i, j};
y = {a, b, c};
z = {{1, 2, 3}, {4, 5, 6}};

其中zxy坐标对应的数据,z(x_i,y_j) = z_ij.我需要创建以下形式的数组:

zz = {{i, a, 1}, {i, b, 2}, {i, c, 3}, {j, a, 4}, {j, b, 5}, {j, c, 6}}

如何在 Mathematica 10.0 中高效地完成此操作?


这是我迄今为止的尝试:

zz = Table[{x[[ii]], y[[jj]], z[[ii, jj]]}, {ii, 1, Length[x]}, {jj, 1, Length[y]}]~Flatten~1

我的最终目标是绘制 (ListPlot3D[zz]) 或插值此数据 (Interpolation[zz]),以及 xy 可能是非均匀采样的。

最佳答案

简化比尔的答案

x = {i, j};
y = {a, b, c};
z = {{1, 2, 3}, {4, 5, 6}};

MapThread[Append, {Flatten[Outer[List, x, y], 1], Flatten@z}]

{{i, a, 1}, {i, b, 2}, {i, c, 3}, {j, a, 4}, {j, b, 5}, {j, c, 6}}

还有

Transpose@Append[Transpose@Tuples@{x, y}, Flatten@z]

{{i, a, 1}, {i, b, 2}, {i, c, 3}, {j, a, 4}, {j, b, 5}, {j, c, 6}}

关于wolfram-mathematica - 组合两个列表和一个数组以创建 3D 数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801314/

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