在Matlab中扩展表变量
我有一张桌子:在Matlab中扩展表变量,matlab,matlab-table,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
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
如何展开表中的变量名称,在必要时保留值?我们可以这样做:
首先,您需要创建新ID的表。
然后你可以像往常一样在表上形成数组。
例如:
创建新表:
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向量选择当前的数据表。这是您自己编辑的数据表的副本,但并不完全相同,因为我在这里明确询问如何创建一个只扩展列的新表。我并不是说这个系列的同步是准时的。
T = [T(:,1:2) T1(:,1) T(:,3) T1(:,2)]