Matrix 使用Maxima,如何将两个列表合并为一个嵌套列表?

Matrix 使用Maxima,如何将两个列表合并为一个嵌套列表?,matrix,maxima,Matrix,Maxima,我有一个x值列表和另一个y值列表。我想这些安排在一个2列矩阵或嵌套列表(我可以很容易地变成一个矩阵)。在Mathematica中,这是通过线程[x值,y值]实现的,但我找不到类似的最大值函数 我从这两个列表开始 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

我有一个x值列表和另一个y值列表。我想这些安排在一个2列矩阵或嵌套列表(我可以很容易地变成一个矩阵)。在Mathematica中,这是通过线程[x值,y值]实现的,但我找不到类似的最大值函数

我从这两个列表开始

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);

有没有一种“快速”的方法可以做到这一点,因为我的真实数据集有数百个这样的数据点。

我认为一种简单的方法是创建一个包含两行多列的矩阵,然后将其转换为两列多行:

MatrixT: transpose (matrix (Tx, Ty));
我至少可以想到另外两种方法:

ListT: map (lambda ([a, b], [a, b]), Tx, Ty);
MatrixT: apply (matrix, ListT);

我经常使用
transpose
在面向行和面向列的变量之间来回切换。例如,假设您有一个包含3列的
mymatrix3
,并且希望为变量X、Y和Z分配列。你可以说

[X, Y, Z]: args (transpose (mymatrix3));
因为
args()
返回矩阵行的列表,并且
[X,Y,Z]:
表示并行赋值

请问您使用Maxima的目的是什么?我总是很想听听人们在做什么。(我是Maxima开发人员和项目管理员。)

我只发现了这样一种方法:

(%i1) Tx:[1,2,3,4,5,6,7,8,9,10];
(%o1)                   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(%i2) Ty:[86,85,84,89,85,89,87,85,82,85];
(%o2)              [86, 85, 84, 89, 85, 89, 87, 85, 82, 85]
(%i3) ListT:makelist([Tx[i],Ty[i]],i,1,length(Tx));
(%o3) [[1, 86], [2, 85], [3, 84], [4, 89], [5, 85], [6, 89], [7, 87], [8, 85], [9, 82], [10, 85]]
(%i1) Tx:[1,2,3,4,5,6,7,8,9,10];
(%o1)                   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(%i2) Ty:[86,85,84,89,85,89,87,85,82,85];
(%o2)              [86, 85, 84, 89, 85, 89, 87, 85, 82, 85]
(%i3) ListT:makelist([Tx[i],Ty[i]],i,1,length(Tx));
(%o3) [[1, 86], [2, 85], [3, 84], [4, 89], [5, 85], [6, 89], [7, 87], [8, 85], [9, 82], [10, 85]]