我生成了如下对:
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
TUT(转置,展开,转置):
>> out = out.';
>> pairs = out(:).'
pairs =
AAABACBABBBCCACBCC
上面的工作原理是在MATLAB中展开某些东西或使用(:)
将n维数组转换为单个向量。这是以列为主的格式完成的,因此矩阵的列相互堆叠以形成单个向量。但是,您希望将所有行堆叠成一行。我们可以先对矩阵进行转置让行变成列,然后展开转置让列堆叠在一起。这是你想要的结果,但它是一个单列,所以你需要转置这个结果来得到你想要的。
或者,您可以在转置上使用reshape
,并确保我们得到单行输出:
>> pairs = reshape(out.', 1, [])
pairs =
AAABACBABBBCCACBCC