拥有缺少时间戳的时间序列数据。必须找到它们并插入缺少时间戳的行。
当我使用table
时,我希望从一个表到另一个表一步分配string
和double
值。
例如:
% 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
的人 - 感谢任何针对问题的指针和解决方案。
答案 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,:);