【发布时间】:2019-02-04 15:17:45
【问题描述】:
我有一个问题,我需要构建一个函数,其输出是一个矩阵,用于一个元素之间的所有可能组合,该元素仅重复一次,而另一个元素可以是一个或多个。
例如,假设我们有一个维度为 3 x 1 的数组 y,初始化为 [0 0 0] 第一个元素是 x,它只重复一次,第二个元素 r 重复一个或多个。所以我需要构建的结果矩阵将与那个相似:
y = [x r 0;
x 0 r;
x r r;
r x 0;
0 x r;
r x r;
r 0 x;
0 r x;
r r x]
我尝试使用nchoosek,但这不起作用,因为当我有 [x r 0] 时,我不能有 [x 0 r]。
我用排列尝试了这个例子,但是我现在不能根据上面的矩阵把 x 放在 3 的位置,把 r 放在 0 的位置
clear all
clc
v = 1 : 3;
vv = perms(v);
vv(vv<3)=0;
请您帮忙。
谢谢
【问题讨论】:
-
您的示例令人困惑。你说第一个元素是
x,它只重复了一次,但实际上它出现了三遍。请发布一个带有实际数字的清晰示例 -
您是否尝试过编写一些代码来做到这一点?好像不是特别难。好吧,你放的例子会在 MATLAB 中抛出一个错误,我假设你在那里犯了一些错别字
-
@LuisMendo .. 在每个组合中,元素 x 重复一次,另一个元素 r 正在变化,元素 x 重复 3 次,但每次都改变位置r 或 with r 重复多次
-
@AnderBiguri 我试过了,但我遇到了问题! ..我不能。你能帮忙吗?
-
@New_student 告诉我们你的尝试
标签: matlab