How can I concatenate a "datetime" column to a matrix of numbers?
37 次查看(过去 30 天)
显示 更早的评论
I have imported a table from an external file via textscan. For example:
A = rawCellColumns2(:, 1);
B = cell2mat(rawNumericColumns2(:, 1));
C = cell2mat(rawNumericColumns2(:, 2));
D = cell2mat(rawNumericColumns2(:, 3));
E = cell2mat(rawNumericColumns2(:, 4));
A is "datetime" in this form:
2019-07-10 22:00:00
B, C, D, and E are all numbers.
I now want to make a new table (Z) by concatenating A - E. However, I get the error below because of the datetime column (I have no problem concatenating the columns of numbers by doing B(:), C(:), D(:), E(:)):
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
People have addressed this problem here at Matlab Answers, but as a bit of a newbie, I would be very grateful if someone could please provide a newbie-level explanation. I am using 2016a. Thank you very much for any advice.
0 个评论
采纳的回答
Steven Lord
2020-7-21
You cannot concatenate together data of types datetime and double without converting the datetime array to double or the double array to datetime. But that's probably not what you want.
If you were using release R2016b or later I would suggest creating a timetable array from your data, but you indicated you're using R2016a. If you cannot upgrade to release R2016b or later I think you're probably going to want to create a table array instead. [The table data type was introduced in release R2013b.] Let's make some sample data.
v = (0:4).';
dt = datetime('today') + days(v);
x = v.^2;
Now let's build the table.
T = table(dt, x)
See the documentation for table to learn how to work with data stored in a table.
doc table
One example: you can extract the row of the table corresponding to x = 4.
T(T.x == 4, :)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!