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

时间:2019-03-22 15:25:03

标签: 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 (vi:col(Mt,i));

这将返回“完成”,但是当我输入

v1;

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

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

我可以让Maxima将所有列显示为矢量,但结果还是只有“ v1”。谁能告诉我我在做什么错?

1 个答案:

答案 0 :(得分: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));