多行合并成一行(Matlab)



我生成了如下对:

      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

最新更新