【发布时间】:2020-01-05 09:42:26
【问题描述】:
我想将几个数组组合到一张表中。由于它们具有不同的数据类型,因此看起来不是很简单。 考虑一下这个简单的 MWE:
daysTotal = 2;
hoursTotal = daysTotal*24;
timeStepHours = 1/4;
nhi = 1/timeStepHours;
q_in_mean = 0.82;
% You may need to change this, according to your locale
startDateTimeStr = '02.09.2019 00:00:00';
startDateTime = datetime(startDateTimeStr);
dateTimeVector = startDateTime:hours(timeStepHours): ...
(startDateTime+days(daysTotal)-hours(timeStepHours));
var1 = ones(hoursTotal*nhi, 3);
var2 = q_in_mean*ones(hoursTotal*nhi, 1);
tableFull = table(dateTimeVector.', var1, var2);
虽然这行得通,但我得到了 tableFull.var2 的旧形状,但我希望有一个 (hoursTotal*nhi, 5) 表,即每个数组列都有一个单独的表列。
如果所有元素都来自相同的数据类型,这会工作:
tableFull = array2table([dateTimeVector.', var1, var2])
虽然这可行,但它似乎不是很优雅:
tableFull = horzcat(table(dateTimeVector.'), array2table(var1), table(var2));
有没有更好的方法从这三个具有不同数据类型的变量中获取(hoursTotal*nhi, 5) 表?
【问题讨论】:
-
这对你有帮助吗?
tableFull = table( dateTimeVector.', var1(:,1), var1(:,2), var1(:,3), var2 )? (对我来说)很难根据这个示例理解您的解决方案需要多么通用。
标签: matlab matlab-table