在Matlab中展开表变量

时间:2017-10-11 11:26:11

标签: matlab matlab-table

我有一张桌子:

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 1}}。

如何在必要时展开我的表的VariableNames并保留值?

1 个答案:

答案 0 :(得分: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向量选择当前的数据表。