partial match of 2 string vectors with different lenghts
2 views (last 30 days)
Show older comments
Hi everyone,
I hope you can help me. I have two 2 string arrays (str1 and str2) with different lengths. For instance,
str1= ["16-10-2017 09:20:00"; "16-10-2017 09:21:00"; "16-10-2017 09:22:00"; "16-10-2017 09:23:00"] ]
str2= ["16-10-2017 09:21:00_water"; "16-10-2017 09:23:00_coffee"] ]
I would like to:
(1) match the first 19 characters of a str2 (in this case it is 16-10-2017 09:21:00) with str1
(2) create str3 that will give me a string array like this str3=[0;"16-10-2017 09:21:00_water";0;"16-10-2017 09:23:00_coffee"] So when there is an overlap use the value in str2 in str3, when there is no overlap use 0 or NAN.
Thanks,
0 Comments
Answers (1)
Rik
on 6 Jun 2018
Edited: Rik
on 6 Jun 2018
Something like this:
str1= ["16-10-2017 09:20:00"; "16-10-2017 09:21:00"; "16-10-2017 09:22:00"; "16-10-2017 09:23:00"];
str2= ["16-10-2017 09:21:00_water"; "16-10-2017 09:23:00_coffee"];
temp=arrayfun(@extract_date,str2);
L=ismember(str1,temp);
str3=str1;
str3(~L)=0;
str3(L)=str2;
function date=extract_date(str)
str=char(str);
date=string(str(1:19));
end
5 Comments
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!