分配不同类型的多个表变量

时间:2014-07-29 10:00:44

标签: matlab time-series variable-assignment

拥有缺少时间戳的时间序列数据。必须找到它们并插入缺少时间戳的行。 当我使用table时,我希望从一个表到另一个表一步分配stringdouble值。

例如:

% initialise data
n = rand(2,1);
tst = cellstr('ts1');
tst(2,1) = cellstr('ts2');
aTable = table(ts,n)

% create 2nd table for assignment
[x y] = size(aTable)
aTable2 = array2table(zeros(x, y));

% attempt assignment
aTable2(1,:) = aTable(2,:);

抛出:

  

“使用table / subsasgnDot时出错(第234行)

     

无法从单元格转换为双倍。

     

表/子队列中的错误(第66行)

   t = subsasgnDot(t,s,b);"

尝试了几种分配方法,例如使用VariableNames,但无济于事。当然,我不是第一个希望能够以矢量化形式分配多个Variables的人 - 感谢任何针对问题的指针和解决方案。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。只是不要指定列的类型。您已通过调用array2table将列声明为双精度数。解决方案是只创建一个没有行或列的表,并在分配时确定每列的类型:

clear all
clc;

% initialise data
n = rand(2,1);
tst = cellstr('ts1');
tst(2,1) = cellstr('ts2');
aTable = table(tst,n);

% create 2nd table for assignment, having neither rows nor columns.
aTable2 = table; % <--- The trick

% Assign whatever you like
aTable2(1,:) = aTable(2,:);