我按如下方式生成了对:
vec1 = ('A':'C');
vec2 = ('A':'C');
[p,q] = meshgrid(vec1, vec2);
out = [p(:) q(:)]
这些对分为多行,如下所示:
pairs =
AA
AB
AC
BA
BB
BC
CA
CB
CC
如何获得在这一行中形成的对:
pairs = AAABACBABBBCCACBCC
答案 0 :(得分:4)
TUT(转置,展开,转置):
>> out = out.';
>> pairs = out(:).'
pairs =
AAABACBABBBCCACBCC
以上工作原理如何在MATLAB中展开或使用(:)
将N维数组转换为单个向量。这是以列主格式完成的,因此矩阵的列堆叠在彼此之上以形成单个向量。但是,您希望将所有行堆叠在一起。我们可以通过首先转置矩阵使行成为列,然后展开转置以使列堆叠在彼此之上来实现。这是您想要的结果,但它只是一个列,所以您需要转换此结果以获得您想要的结果。
或者,你可以在转置上使用reshape
并确保我们为输出获得一行:
>> pairs = reshape(out.', 1, [])
pairs =
AAABACBABBBCCACBCC