【发布时间】:2017-05-26 18:39:15
【问题描述】:
我本质上是想弄清楚如何为 M 个对象的不同配置的基向量生成代码到 N 个不同状态(例如,如果我在 2 个孩子之间有 2 个零食,我可以有 (2,0) (0 ,2) 或 (1,1),糟糕的例子,但就是这样)
我正在努力弄清楚如何在不进入许多不同循环的情况下做到这一点(我希望这是自动的)。这个想法是创建一个矩阵,其中每一行都是长度为 M 的向量。我将从 vec(1) = N 开始,然后是一个 if 循环,其中 if sum(vec) == N, Matrix(1,:)=vec ;然后我可以采取 vec(1)=N-i 并做同样的事情。
我唯一的问题是我不知道如何使用 if 并忘记它,所以如果我在 5 个位置可能有 2 个对象,我将如何执行此操作以获得 (1 0 0 0 1)。
我不知道该怎么做。
【问题讨论】:
-
因此,对于 5 个位置和 20 个对象,您的向量将包括
[14 0 3 2 1]和[2 1 3 9 5]? -
在交易所有一个函数叫做
combn。检查它是否符合您的要求。
标签: matlab permutation