2016-01-12 20 views
7

どのように私はVariableNamesMATLABテーブルを転記する方法は?

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 

すなわちRowNames

なりは、あなたが最初の背面にそれを回転し、変換する前に、アレイにあなたのテーブルを変換する必要があり

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

答えて

9

なるようにテーブルを反転させることができますテーブル:

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

ます。またrot90(YourTable)を試してみて、何が起こるか見て、私はそれは同じことをわからないことができます。これは、NEWTABLE =テーブル `に短縮することができ

+0

(YourTable(私はそれがそれらの誤解を招く名前の一つだと思います) {:、:}}、... 'RowNames'、YourTable.Properties.VariableNames) '。 'rot90'はテーブルを受け付けません。 – EBH

+1

テーブルに行の名前がある場合は、次の行を追加します。 'YourNewTable.Properties.VariableNames = YourTable.Properties.RowNames;' – traindriver

+0

私は同じことをしました。私の変数は、異なるデータ型(uint8、float32など)のものです。新しいテーブルを作成すると、すべての変数がuint16にキャストされます。どうすればこの問題を回避できますか? – JohnDoe

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 
+0

これは受け入れられた回答とどのように異なっていますか? – excaza

関連する問題