How to use str2num function to extract a specific year from the array?

2 ビュー (過去 30 日間)
Ashfaq Ahmed
Ashfaq Ahmed 2022 年 7 月 8 日
回答済み: Star Strider 2022 年 7 月 8 日
Hi!
I have a column matrix consists of string arrays. It's a huge time matrix and I am just showing a part of it. It contains data from year 2001 to 2019.
'2003-09-30T20:32:34Z'
'2003-09-30T20:47:34Z'
'2003-09-30T21:02:34Z'
'2003-09-30T21:17:34Z'
'2003-09-30T21:32:34Z'
'2003-09-30T21:47:34Z'
'2003-09-30T22:02:34Z'
'2003-09-30T22:17:34Z'
'2003-09-30T22:32:34Z'
'2003-09-30T22:47:34Z'
'2003-09-30T23:02:34Z'
'2003-09-30T23:17:34Z'
'2003-09-30T23:32:34Z'
'2003-09-30T23:47:34Z'
'2004-05-23T13:45:00Z'
'2004-05-23T14:00:00Z'
'2004-05-23T14:15:00Z'
'2004-05-23T14:30:00Z'
'2004-05-23T14:45:00Z'
'2004-05-23T15:00:00Z'
'2005-05-23T15:15:00Z'
'2005-05-23T15:30:00Z'
'2005-05-23T15:45:00Z'
'2005-05-23T16:00:00Z'
'2005-05-23T16:15:00Z'
'2005-05-23T16:30:00Z'
'2006-05-23T16:45:00Z'
'2006-05-23T17:00:00Z'
'2006-05-23T17:15:00Z'
'2006-05-23T17:30:00Z'
'2006-05-23T17:45:00Z'
'2007-05-23T18:00:00Z'
If I want to extract only the data from 2003, how can I select those specific rows of 2003? I personally want to use this command -
str2num(time{i}(1:4))==2003
But if there is a better alternative, I am happy to use it! Thank you so much.

採用された回答

Star Strider
Star Strider 2022 年 7 月 8 日
C = {'2003-09-30T20:32:34Z'
'2003-09-30T20:47:34Z'
'2003-09-30T21:02:34Z'
'2003-09-30T21:17:34Z'
'2003-09-30T21:32:34Z'
'2003-09-30T21:47:34Z'
'2003-09-30T22:02:34Z'
'2003-09-30T22:17:34Z'
'2003-09-30T22:32:34Z'
'2003-09-30T22:47:34Z'
'2003-09-30T23:02:34Z'
'2003-09-30T23:17:34Z'
'2003-09-30T23:32:34Z'
'2003-09-30T23:47:34Z'
'2004-05-23T13:45:00Z'
'2004-05-23T14:00:00Z'
'2004-05-23T14:15:00Z'
'2004-05-23T14:30:00Z'
'2004-05-23T14:45:00Z'
'2004-05-23T15:00:00Z'
'2005-05-23T15:15:00Z'
'2005-05-23T15:30:00Z'
'2005-05-23T15:45:00Z'
'2005-05-23T16:00:00Z'
'2005-05-23T16:15:00Z'
'2005-05-23T16:30:00Z'
'2006-05-23T16:45:00Z'
'2006-05-23T17:00:00Z'
'2006-05-23T17:15:00Z'
'2006-05-23T17:30:00Z'
'2006-05-23T17:45:00Z'
'2007-05-23T18:00:00Z'};
DT = datetime(C, 'InputFormat','yyyy-MM-dd''T''HH:mm:ss''Z''', 'TimeZone','UTC') % Create 'datetime' Array
DT = 32×1 datetime array
30-Sep-2003 20:32:34 30-Sep-2003 20:47:34 30-Sep-2003 21:02:34 30-Sep-2003 21:17:34 30-Sep-2003 21:32:34 30-Sep-2003 21:47:34 30-Sep-2003 22:02:34 30-Sep-2003 22:17:34 30-Sep-2003 22:32:34 30-Sep-2003 22:47:34 30-Sep-2003 23:02:34 30-Sep-2003 23:17:34 30-Sep-2003 23:32:34 30-Sep-2003 23:47:34 23-May-2004 13:45:00 23-May-2004 14:00:00 23-May-2004 14:15:00 23-May-2004 14:30:00 23-May-2004 14:45:00 23-May-2004 15:00:00 23-May-2005 15:15:00 23-May-2005 15:30:00 23-May-2005 15:45:00 23-May-2005 16:00:00 23-May-2005 16:15:00 23-May-2005 16:30:00 23-May-2006 16:45:00 23-May-2006 17:00:00 23-May-2006 17:15:00 23-May-2006 17:30:00
Y2003 = year(DT) == 2003; % Logical Vector
Result = DT(Y2003)
Result = 14×1 datetime array
30-Sep-2003 20:32:34 30-Sep-2003 20:47:34 30-Sep-2003 21:02:34 30-Sep-2003 21:17:34 30-Sep-2003 21:32:34 30-Sep-2003 21:47:34 30-Sep-2003 22:02:34 30-Sep-2003 22:17:34 30-Sep-2003 22:32:34 30-Sep-2003 22:47:34 30-Sep-2003 23:02:34 30-Sep-2003 23:17:34 30-Sep-2003 23:32:34 30-Sep-2003 23:47:34
For table ‘T1’, the addressing would be:
Result = T1(Y2003,:)
to capture all the variables in ‘T1’ for those years.
.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by