2017-10-11 82 views
0

我有一個表:展開表變量在Matlab

Values = [2.1 2.4 2.5 2.6; ... 
      4.1 4.4 4.5 4.6; ... 
      6.1 6.4 6.5 6.6]; 

ID  = {'x1', 'x4', 'x5', 'x6'}; 

Ta = array2table(Values,'VariablesNames', ID); 

現在我有ID的另一個列表:

ID  = {'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'}; 

我想拓展我的表,使得在列,我有數據在Ta我把Ta的值,我沒有數據的單元格我得到NaN

如何擴展我的表的VariableNames以保持必要的值?

+0

這是您自己編輯您的[上一個問題](https://stackoverflow.com/q/46682751/3978545) – Wolfie

+0

的副本不完全,因爲我在這裏明確要求如何創建一個擴展的新表只有列。我沒有提及準時系列的同步。 – JohnAndrews

回答

1

我們可以這樣做: 首先,您需要創建新ID的表。 然後你可以像平常一樣在表格上構建表格。 例子:

x1 = [1; 2; 3; 4;] 
x2 = [1;1;1;1] 
x4 = [10;10;10;10] 
T = table(x1,x2,x4) 

T = 

    x1 x2 x4 
    __ __ __ 

    1  1  10 
    2  1  10 
    3  1  10 
    4  1  10 

創建新表:

x3 = [123;13;13;123] 
x5 = [0;0;0;0] 
T1 = table(x3,x5) 

T1 = 

    x3  x5 
    ___ __ 

    123 0 
    13 0 
    13 0 
    123 0 

要展開第一表你現在使用索引:

T = [T(:,1:2) T1(:,1) T(:,3) T1(:,2)] 

所以,現在你需要做的就是創建算法使用您的ID向量來選擇當前的數據表。