在for循环中创建矩阵

时间:2017-09-12 13:05:19

标签: for-loop matrix random wolfram-mathematica

我目前正在使用mathematica,但我遇到了一些技术问题。

Rvec[R_] := UnitVector[Length[R], RandomInteger[{1, Length[R]}]]
Fvec[R_] := R - Rvec[R] + Rvec[R]
vec[R_] := Module[{S = Fvec[R]}, If[Count[S, -1] > 0, R, S]]
Loop[R_, n_] := For[i = 1; L = R, i < n + 1, i++, L = vec[L]; Print[L]]

我的想法是,我现在有一个循环,它会从一个集合中的一个条目中随机减去一个数字,并在下一次迭代中将它添加到另一个条目,但是没有条目可以降到零以下。然后我得到的输出是一组置于彼此之下的结果。

完成后我想知道如何将整个输出放在一个矩阵的形式中:

https://i.gyazo.com/a4ef70ba5670fd53003e0ac5ec1e434e.png

我没有这样的输出,而是希望以矩阵形式使用它,就像将这组输出放在包含这些集合作为元素的更大集合中一样。这对我很有帮助,因为我可以操作和处理整个输出。

1 个答案:

答案 0 :(得分:0)

如果你需要通过向量添加向量来制作矩阵,你可以这样做:

vector = {1, 2, 3, 4, 5};
matrix = {};   (* Initialize matrix *)
Do[matrix = Append[matrix, vector], 5];   (* Construct matrix by adding line by line*)
MatrixForm[matrix]   (* Print matrix *)

请告诉我如果我没有正确解决你的问题。