partial match of 2 string vectors with different lenghts

2 visualizaciones (últimos 30 días)
PH
PH el 6 de Jun. de 2018
Comentada: Rik el 7 de Jun. de 2018
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,

Respuestas (1)

Rik
Rik el 6 de Jun. de 2018
Editada: Rik el 6 de Jun. de 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 comentarios
PH
PH el 7 de Jun. de 2018
Thanks, the code works with these strings. However, I tried the code with my original data and it did give me an error. str1's value is 6196x1 and str2's value is 14x1.
(In an assignment A(:) = B, the number of elements in A and B must be the same. Error in matching_code (line 5) str3(L)=str2;)
Rik
Rik el 7 de Jun. de 2018
Then the dates in str2 are non-unique. So which should be selected?

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by