2017-10-11 42 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向量来选择当前的数据表。