【问题标题】:Matlab transpose a table vectorMatlab转置表向量
【发布时间】:2014-07-25 02:30:23
【问题描述】:

这似乎是一个令人尴尬的简单问题,但如何转置 Matlab 表向量?

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

aTableT = aTable.';

aTableT = reshape(aTable, 1, height(aTable));

和

aTableT = rot90(aTable);

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

使用 table/permute 时出错(第 396 行) 'table' 类型的输入参数的未定义函数 'permute'。

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

注意:fliplr 也没有用。很确定我已经涵盖了明显的角度 - 有什么想法吗? 谢谢!

【问题讨论】:

    标签: matlab vector transpose


    【解决方案1】:

    尝试将您的表格转换为数组,将其转置,然后再转换回表格。换句话说,尝试这样做:

    aTableArray = table2array(aTable);
    aTableT = array2table(aTableArray.');
    

    我也阅读了rot90 的文档,它说rot90 绝对应该适用于表格,我得到了和你一样的错误。因此,由于转置显然适用于数组/矩阵,让我们通过转换为矩阵、转置然后转换回表格来快速解决问题。这对我有用!

    【讨论】:

    • rot90 工作于 2014a,但我不确定结果是否是所需的,它的行为更像 flip-
    • 这是最糟糕的错误类型,代码被更改而文档没有被更改。我在matlab中找到了一些。在某些情况下,我深入研究了代码(用 matlab 编写时),发现记录的行为已被明确删除:(.
    • @thewaywewalk - 很好奇。我在这个测试中使用了 2014a,我得到了 OP 所说的 permute 错误。谈论不一致!
    • @rayryeng 如果第二个输入不是 90 的倍数,我只会收到错误消息。
    • @thewaywewalk - 很有趣。这可能是我第一次在 MATLAB 中看到这种错误。因为它是授权软件并且有这么多投资者,你会认为这样的问题会得到解决。
    【解决方案2】:

    我用一些额外的方法扩展了table() 类并修复了https://github.com/okomarov/tableutils 中的一些现有问题。

    针对这个问题,我定义了一个类似矩阵的表格的转置,即如果表格每个单元格有一个值,并且所有变量(列)属于同一类,那么你可以用我的包转置表格。

    一个例子:

    t = array2table(magic(4))
    t = 
        Var1    Var2    Var3    Var4
        ____    ____    ____    ____
        16       2       3      13  
         5      11      10       8  
         9       7       6      12  
         4      14      15       1  
    >> t'
    ans = 
                Row1    Row2    Row3    Row4
                ____    ____    ____    ____
        Var1    16       5       9       4  
        Var2     2      11       7      14  
        Var3     3      10       6      15  
        Var4    13       8      12       1  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-16
      • 2017-10-09
      • 1970-01-01
      • 2023-04-01
      • 2016-12-15
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多