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

标签 matrix maxima

我有一个 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/

相关文章:

c# - 寻找矩阵中最短路径的算法

r - 如何将矩阵子集化为一列,维护矩阵数据类型,维护行/列名称?

r - 协方差矩阵和相关矩阵之间的转换

matlab - 矩阵/张量三重积?

maxima - 最大值 split 是否存在相反的情况?连接函数?

maxima - wxMaxima:将除法视为乘法(将整体除法收集为乘法因子)

maxima - 在最大值 : is it possible? 中通过引用调用

Python Numpy - 矩阵内存错误和限制

lisp - 如何将最大值导入 sbcl

algorithm - Maxima- 以更多算法方式进行符号变量替换