【发布时间】:2017-09-12 13:05:19
【问题描述】:
我目前正在使用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
我不想有这样的输出,而是希望它以矩阵形式出现,就像将这组输出放在一个更大的集合中,其中包含这些集合作为元素。这将极大地帮助我,因为我将能够操纵和处理整个输出。
【问题讨论】:
-
我建议不要使用
For,而是使用Nest。要在程序循环中收集结果,请查找Sow/Reap。如果你是初学者,I suggest you forget about theForloop for a while。最后,尽量避免以大写字母开头的名称,因为您可能会与内置符号或包符号发生冲突。 -
我的意思实际上是
NestList,而不是Nest。 -
也许我错过了一些东西,但为什么不把
For循环变成Table呢?
标签: for-loop matrix random wolfram-mathematica