Search code examples
matlab

How to transpose a MATLAB table?


How can I flip a table such that VariableNames becomes RowNames

i.e.

   m0         m1         m10        m11        m12        m13        m14        m2         m3         m4          m5          m6         m7         m8         m9   
    ________    _______    _______    _______    _______    _______    _______    _______    _______    _______    ________    ________    _______    _______    _______

    0.096898    0.11567    0.23266    0.11393    0.51438    0.51438    0.51438    0.42039    0.11543    0.11024    0.060229    0.086558    0.11542    0.11537    0.43305

becomes

        Chisq
        _______
m0       0.096898
m1        0.11567
m2        ...
...       ...

Solution

  • you need to first convert your table to an Array before rotating and converting it back into a table:

    YourArray = table2array(YourTable);
    YourNewTable = array2table(YourArray.');
    YourNewTable.Properties.RowNames = YourTable.Properties.VariableNames;
    

    You can also try rot90(YourTable) and see what happens, but I'm not sure it does the same (I think it is one of those misleading names)