我有一个 x 值列表和另一个 y 值列表。我希望将它们排列在 2 列矩阵或嵌套列表中(我可以轻松地将其转换为矩阵)。在 Mathematica 中,这是使用 Thread[x-values, y-values] 完成的,但我找不到类似的 Maxima 函数。
我从这两个列表开始,
Tx:[1,2,3,4,5,6,7,8,9,10];
Ty:[86,85,84,89,85,89,87,85,82,85];
并手动制作它,
ListT: [[1,86],[2,85],[3,84],[4,89],[5,85],[6,89],[7,87],[8,85],[9,82],[10,85]];
所以我可以使用创建一个矩阵
MatrixT: apply('matrix,ListT);
有没有一种“快速”的方法来做到这一点,因为我的真实数据集有数百个以这种方式出现的数据点?
最佳答案
我认为一个简单的方法是创建一个 2 行和许多列的矩阵,然后将其转置为 2 列和许多行:
MatrixT: transpose (matrix (Tx, Ty));
我至少可以想到另外两种方法:
ListT: map (lambda ([a, b], [a, b]), Tx, Ty);
MatrixT: apply (matrix, ListT);
和
ListT: makelist ([Tx[i], Ty[i]], i, 1, length(Tx));
MatrixT: apply (matrix, ListT);
我使用transpose
经常在面向行的变量和面向列的变量之间来回切换。例如,假设您有 mymatrix3
有 3 列,并且您希望将变量 X、Y 和 Z 分配给这些列。你可以说
[X, Y, Z]: args (transpose (mymatrix3));
自 args(<some matrix>)
返回矩阵行的列表,并且 [X, Y, Z]: <some list of 3 things>
代表并行分配。
请问您使用 Maxima 的目的是什么?我总是很想听听人们在做什么。 (我是 Maxima 开发人员和项目管理员。)
关于matrix - 使用 Maxima,如何将两个列表合并为一个嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60045717/