【发布时间】:2014-12-02 19:18:45
【问题描述】:
我有一个矩阵:
X = [2,6,1; 3,8,1; 4,7,1; 6,2,1; 6,4,1; 7,3,1; 8,5,1; 7,6,1];
我想找到 X 的所有按行组合。即
A(1) = [2, 6, 1; 3, 8, 1; 4, 7, 1]
A(2) = [2, 6, 1; 3, 8, 1; 6, 2, 1]
:
:
:
这是我尝试过的:
X = [2,6,1; 3,8,1; 4,7,1; 6,2,1; 6,4,1; 7,3,1; 8,5,1; 7,6,1];
p = 3
[m, n] = size(X);
comb = combnk(1:m, p);
[s, t] = size(comb);
c = [X(comb(:,1), :, :) X(comb(:,2), :, :) X(comb(:,3), :, :)];
这给了我一个像这样的矩阵:
c = 2 6 1 3 8 1 4 7 1
2 6 1 3 8 1 6 2 1
2 6 1 3 8 1 6 4 1
我想应用连接矩阵选项来获得 c 以使其根据 p 的值动态,但我不确定如何使用它。我不想使用 For 循环。请帮帮我。
【问题讨论】:
-
你不是说上面的
c = [X(comb(1,:), :, :)...吗? -
你的标题也是 3D 矩阵,但你的例子是 2D...?
标签: matlab concatenation combinations