假设我有一个如下定义的矩阵
M = [C1 C2 C3 C4]
Run Code Online (Sandbox Code Playgroud)
在C是列向量的情况下,我想要一些有效的(即没有用于循环)生成A向量的方法
ResultVec = [C1 C2;
C1 C3;
C1 C4;
C2 C3;
C2 C4;
C3 C4]
Run Code Online (Sandbox Code Playgroud)
提前致谢!
the*_*alk 10
那就是nchoosek:
M = [ 1 2 3 4 ];
R = nchoosek(M,2);
Run Code Online (Sandbox Code Playgroud)
收益:
R =
1 2
1 3
1 4
2 3
2 4
3 4
Run Code Online (Sandbox Code Playgroud)
我不知道这是不是你的意图,而是nchoosekMatlabs实现了n个元素的给定集合中的k组合的数量,没有重复(维基百科)
nchoosek尽管如此,该功能在性能方面并不是很有效.但是在File Exchange上有等价物,它们(!!)的速度更快,并且做得更好.
为了说清楚,它不仅适用于上面相当简单的例子,而且不会返回任何索引.它根据需要直接转换矩阵.
M = [ 21 42 123 17 ];
Run Code Online (Sandbox Code Playgroud)
收益:
R =
21 42
21 123
21 17
42 123
42 17
123 17
Run Code Online (Sandbox Code Playgroud)