这个问题经常以某种形式出现(例如,见此处或此处).所以我认为我会以一般形式呈现它,并提供一个可能供将来参考的答案.
给定任意数量
n的可能不同大小的向量,生成一个n列矩阵,其行描述从这些向量中获取的元素的所有组合(笛卡尔积).
例如,
vectors = { [1 2], [3 6 9], [10 20] }
Run Code Online (Sandbox Code Playgroud)
应该给
combs = [ 1 3 10
1 3 20
1 6 10
1 6 20
1 9 10
1 9 20
2 3 10
2 3 20
2 6 10
2 6 20
2 9 10
2 9 20 ]
Run Code Online (Sandbox Code Playgroud) 我正在做以下事情
for i = 1:m,
index = 0;
for j = 1:n,
index = index+values(i,j)*2^(j-1);
if (j==1)
symbol_chip = chip_values(index+1,:);
else
symbol_chip = [symbol_chip chip_values(index+1,:)];
end
end
end
Run Code Online (Sandbox Code Playgroud)
它告诉我以下内容:
symbol_chip可能会在循环中成长.考虑预先分配速度.
有任何想法吗?