如何在Matlab中计算由数字-1和1组成的长度为6的矢量的所有组合



假设我们有两个数字[-1 1],并希望将它们组合在一个有6列的矩阵中。我如何计算这些数字的所有64个组合,使得结果是64x6维的矩阵?

为了让我的问题更清楚,最终结果看起来像这样:

具有所有64个可能组合的CCD_ 1。由于有64个组合,因此所得矩阵将具有64行和6列,因为每一行(向量(具有6个数字。

请注意,您的问题相当于用二进制计数,并用所需值替换0和1。您可以使用dec2bin生成每行一个二进制数的矩阵,然后使用它为任意值的向量编制索引:

n = 6;                            % number samples per row
values = [-1, 1];                 % the two distinct values
len = 2^n;                        % total number of rows
binary = dec2bin(0:len-1, n)-'0'; % binary "counting" matrix
A = values(binary+1);             % indexing the values by the counting matrix
disp(A);

在线试用!

最新更新