extracting dates within a text

Good day all,
I have a csv file with texts and and dates mixed in each cell. I need to extract the dates that follow a specific text and store them in cell arrays. Example: "MovExperiment/MovingBarParameters started at 2018-04-17_09-32-11"; please see highlighted cells in the attached image.
What is the efficient way to do this?
Thanks,
Sadegh

1 Commento

dpb
dpb il 30 Nov 2019
Dunno and can't experiment without a copy of the significant portion of the file to look at.
Attach a (smallish) section of the file, not an image.

Accedi per commentare.

 Risposta accettata

dpb
dpb il 30 Nov 2019
Modificato: dpb il 30 Nov 2019
matchstr='LoomingExp'; % string to match
c=textread('book1.csv','%s','delimiter',''); % read as cellstr array
c=char(c(contains(c,matchstr))); % save those with matching string/convert to char array
dt=datetime(c(:,end-18:end),'InputFormat','yyyy-MM-dd_HH-mm-ss'); % convert date strings to datetime
textread has been deprecated by TMW, but it's still useful in being able to do many things without the bother of having to have a file handle but using the filename directly.

3 Commenti

Thanks a lot. The only change I needed to make to your script is to insert:
c = cellfun(@(c) c(end-18:end), c, 'un', 0);.
Otherwise, I get the error message:
Error using datetime (line 636)
Unable to convert the text to datetime using the format 'yyyy-MM-dd_HH-mm-ss'.
matchstr='LoomingExp';
c=textread('Book1.csv','%s','delimiter','');
c=c(contains(c,matchstr));
c = cellfun(@(c) c(end-18:end), c, 'un', 0);
dt=datetime(c,'InputFormat','yyyy-MM-dd_HH-mm-ss');
Oh. I had done char() to convert to character array at command line but missed it when cut and pasted...
c=char(c(contains(c,'LoomingExp')));
Updated Answer
Thanks a lot. It works smoothly.

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Release

R2019b

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by