我有一个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开发人员和项目管理员。)