split numbers into coloumns
显示 更早的评论
Hello all
I have a raw of data with 16 digits like 0799569419940319, the last 8 digits are the year, the month and the day. How can I split the cells to extract the year and month and day?
4 个评论
Stephen23
2022-12-12
"I have a raw of data with 16 digits like 0799569419940319..."
What are you importing this data from? What data type does it have?
Please upload a sample file by clicking the paperclip button. Actual data is always more accurate than explanations of data.
You don't say what the other digits represent. But if these "numbers" are always 16 digits, And the first digit can be a 9, then potentially you need to be careful.
format long
2^53-1
Some of those numbers will overflow what can be stored in a double as an integer. If that is the case, then the least significant digit, representing the day may not be correctly returned.
The point is, you will most safely want to read those numbers in as text, and then use text processing tools to extract the year, month and day, as characters. Only then would you convert them to a numeric form.
Consider:
n = 0799569419940319;
ns = num2str(n);
dn = ns(end-7:end) % Date Segment
nn = ns(1:end-8) % Number Segment
DT = datetime(dn, 'InputFormat','yyyyMMdd') % 'datetime' Vector
I hav no idea what the rest of these numbers are, so I cannot generalise this and so am not posting this as an Answer.
.
The leading zero let me assume, that this is not a number, but a CHAR vector. But if it is really a number:
n = 0799569419940319;
day = rem(n, 100)
month = rem(floor(n / 100), 100)
year = rem(floor(n / 10000), 10000)
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Deep Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!