在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”。谁能告诉我我在做什么错?
答案 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));