Matlab转置表向量

str*_*gos 5 matlab transpose vector

看起来像一个非常简单的问题,但我怎样才能转置Matlab表格向量?

为了简单地将列向量aTable转换为行向量,我尝试了标准语法:

aTableT = aTable.';

aTableT = reshape(aTable, 1, height(aTable));
Run Code Online (Sandbox Code Playgroud)

aTableT = rot90(aTable);
Run Code Online (Sandbox Code Playgroud)

根据Mathworks,最后一个应该适用于表数组,请参见此处.但是,我收到此错误代码:

使用表/置换时出错(第396行)对于'table'类型的输入参数,未定义的函数'permute'.

rot90中的错误(第29行)B =置换(B,[2 1 3:ndims(A)]);

NB:fliplr也没用.很确定我已经涵盖了明显的角度 - 任何想法?谢谢!

ray*_*ica 3

尝试将表转换为数组,转置它,然后转换回表。换句话说,尝试这样做:

aTableArray = table2array(aTable);
aTableT = array2table(aTableArray.');
Run Code Online (Sandbox Code Playgroud)

我也阅读了文档rot90,它说这rot90肯定适用于表,并且我得到了与您相同的错误。因此,由于转置显然适用于数组/矩阵,因此让我们通过转换为矩阵、转置它,然后转换回表来快速解决问题。这对我有用!

  • `rot90` 在 2014a 中有效,但我不确定结果是否是期望的,它的行为更像是 `flip`- (2认同)
  • 这是最严重的错误类型,代码发生了变化,而文档却没有变化。我在matlab中找到了一些。在某些情况下,我深入研究了代码(当用 matlab 编写时),发现记录的行为已被显式删除:(。 (2认同)