在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”作为结果。谁能告诉我我做错了什么?
我现在无法测试此代码,但我相信这或类似的东西应该有效。
这是一种生成随机矩阵然后提取矩阵列的方法。我不知道您是否要将列显示为列向量或行向量。 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));