如何转置MATLAB表?

时间:2016-01-12 13:07:26

标签: matlab

如何翻转表格RowNames变为 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

即。

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

成为

pip install --egg M2CryptoWin64

3 个答案:

答案 0 :(得分:10)

在旋转并将其转换回表格之前,您需要先将表格转换为数组:

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

您也可以尝试rot90(YourTable)看看会发生什么,但我不确定它是否也会这样(我认为这是误导性名称之一)

答案 1 :(得分:0)

function [tableTransposed] = transposeTable(tableIn)
%this function transposes a table. 
props =tableIn.Properties.VariableNames;

tableTransposed = table();
tableSz = size(tableIn);
tableTransposed.metricName = props';
tableTransposed(1,:) = [];
for newPropertyNum = 1:tableSz(1)
    propCurr = table2array(tableIn(newPropertyNum,1));
    if isa(propCurr,'numeric')
        newProperty = num2str( propCurr );
    else %assumed to be string
        newProperty = propCurr;

    end
    tableTransposed = setfield(tableTransposed,newProperty,table2array(tableIn(newPropertyNum,2:end))');
end

答案 2 :(得分:0)

从MATLAB R2018a开始,您还可以使用ROWS2VARS function。 我发现该函数向表中添加了一个名为OriginalVariableNames的附加列,这可能不是您想要的。