最大值:将矩阵列定义为向量

问题描述 投票:0回答:1

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

n:2+random(5);
m:2+random(5);
h[i,j]:=5-random(11);    
M:genmatrix(h,n,m);

行/列的数量范围可以是2到6(不一定是a = 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”作为结果。谁能告诉我我做错了什么?

matrix maxima
1个回答
2
投票

我现在无法测试此代码,但我相信这或类似的东西应该有效。

这是一种生成随机矩阵然后提取矩阵列的方法。我不知道您是否要将列显示为列向量或行向量。 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列的列表:

args (transpose (M));
© www.soinside.com 2019 - 2024. All rights reserved.