Matrix 极大值:将矩阵的列定义为向量

Matrix 极大值:将矩阵的列定义为向量,matrix,maxima,Matrix,Maxima,在Maxima中,我想使用随机生成矩阵的列定义向量,其中不仅条目,而且行数和列数都是随机的。到目前为止,我的代码是: n:2+random(5); m:2+random(5); h[i,j]:=5-random(11); M:genmatrix(h,n,m); 行/列的数量可以在2到6之间(不一定是n=m),条目是-5到5之间的随机整数 我现在可以使用 v1:col(M,1); 将向量v1定义为矩阵M的第一列,但由于我不知道有多少列,我尝试了以下方法: for i thru n do

在Maxima中,我想使用随机生成矩阵的列定义向量,其中不仅条目,而且行数和列数都是随机的。到目前为止,我的代码是:

n:2+random(5);
m:2+random(5);
h[i,j]:=5-random(11);    
M:genmatrix(h,n,m);
行/列的数量可以在2到6之间(不一定是n=m),条目是-5到5之间的随机整数

我现在可以使用

v1:col(M,1);
将向量v1定义为矩阵M的第一列,但由于我不知道有多少列,我尝试了以下方法:

for i thru n do (vi:col(Mt,i));
这将返回“完成”,但当我输入时

v1;
我只得到“v1”作为结果,而不是矩阵的第一列。与

for i thru n do (disp (v[i]=col(Mt,i)));

我可以得到Maxima,将所有列显示为向量,但同样,我得到的结果是“v1”。有人能告诉我我做错了什么吗?

我现在无法测试这段代码,但我相信这段代码或类似的代码应该可以工作

下面是一种生成随机矩阵,然后提取矩阵列的方法。我不知道是要将列表示为列向量还是行向量。Maxima实际上没有办法将行和列向量表示为不同的类型。对于列向量,我将获得一个1列的矩阵,对于行向量,我将获得一个列表

[m, n]: [2 + random(5), 2 + random(5)];
h: lambda ([i, j], random(11) - 5) $
M: genmatrix (h, m, n);
以下是一个列表,其中M列为1列矩阵:

makelist (col (M, k), k, 1, n);
下面是一个列表,由M列as列表组成:

args (transpose (M));

我现在无法测试这段代码,但我相信这段代码或类似的代码应该可以工作

下面是一种生成随机矩阵,然后提取矩阵列的方法。我不知道是要将列表示为列向量还是行向量。Maxima实际上没有办法将行和列向量表示为不同的类型。对于列向量,我将获得一个1列的矩阵,对于行向量,我将获得一个列表

[m, n]: [2 + random(5), 2 + random(5)];
h: lambda ([i, j], random(11) - 5) $
M: genmatrix (h, m, n);
以下是一个列表,其中M列为1列矩阵:

makelist (col (M, k), k, 1, n);
下面是一个列表,由M列as列表组成:

args (transpose (M));

(1) 这里使用数组函数来生成随机矩阵是没有用的,因为数组函数是一个记忆函数,因此每次都会得到相同的结果。试试这个:
h:lambda([i,j],5-random(11))(这是因为lambda表达式没有记忆)。(2) 我不明白你想对这些专栏做什么。例如,您是否正在尝试创建包含列的列表?还是别的什么?@RobertDodier这应该是一个学生练习,我想在moodle的堆栈中实现。在练习中,我想给他们n个随机生成的向量,问他们这些向量是否线性相关。因此,我的目标是创建这个矩阵(出于明显的原因计算排名),提取向量并将它们呈现给我的学生。使用数组在这里不是一个大问题,因为每次学生做练习都会产生一个新的结果。好的,谢谢你的更新。我将在此基础上给出一个答案。(1)在这里使用数组函数生成随机矩阵是没有用的,因为数组函数是一个记忆函数,因此每次都会得到相同的结果。试试这个:
h:lambda([i,j],5-random(11))(这是因为lambda表达式没有记忆)。(2) 我不明白你想对这些专栏做什么。例如,您是否正在尝试创建包含列的列表?还是别的什么?@RobertDodier这应该是一个学生练习,我想在moodle的堆栈中实现。在练习中,我想给他们n个随机生成的向量,问他们这些向量是否线性相关。因此,我的目标是创建这个矩阵(出于明显的原因计算排名),提取向量并将它们呈现给我的学生。使用数组在这里不是一个大问题,因为每次学生做练习都会产生一个新的结果。好的,谢谢你的更新。我将在此基础上发布一个答案。这对Maxima和STACK都有效,非常感谢!这不仅适用于Maxima,还可以直接转换为STACK,非常感谢!