多行成一行(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

我如何获得像这样排成1行的对:

      pairs = AAABACBABBBCCACBCC
雷瑞恩

TUT(转置,展开,转置):

>> out = out.';
>> pairs = out(:).'

pairs =

AAABACBABBBCCACBCC

上面的工作方式是(:)在MATLAB中展开某些内容或使用,将N维数组转换为单个向量。这是以列优先格式完成的,因此矩阵的列彼此堆叠以形成单个向量。但是,您希望将所有行堆叠在一起成为单行。为此,我们可以先对矩阵进行转置,使行成为列,然后在转置上展开,以使列彼此堆叠。这是您想要的结果,但是它只是一列,因此您需要对结果进行转置以获得所需的结果。

另外,您可以reshape在转置上使用,并确保输出得到一行:

>> pairs = reshape(out.', 1, [])

pairs =

AAABACBABBBCCACBCC

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章