Finding common strings elements in array?
Mostra commenti meno recenti
Hi,
So this seems ridiculously easy but for some reason I can't find a solution. I imported an excel file into matlab and wanted to extract data after a specific date. The problem is that the elements are at the end in each date and not beginning.
I want to have an index of cells that have a common given year. They are formatted this way in each cell: '5/22/2000'
strmatch from my understanding finds common elements but mine are at the end....
2 Commenti
Image Analyst
il 30 Set 2013
Can you attach the workbook, or at least enough of it so we can try to read it in?
Ryan
il 2 Ott 2013
Risposte (2)
Jan
il 30 Set 2013
Do you want to search for the final part of a string? Then http://www.mathworks.com/matlabcentral/fileexchange/27032-strncmpr would help:
C = {'5/22/2000', '5/22/2001', '15/23/2000'};
index = find(strncmpr(C, '2000', 4));
% >> index = [1, 3]
Jos (10584)
il 2 Ott 2013
Modificato: Jos (10584)
il 2 Ott 2013
Get the final part of the strings, and compare them:
C = {'5/22/2000', '5/22/2001', '15/23/2000'} % example from jan
tf = strcmp(cellfun(@(x) x(end-3:end),C,'un',0),'2000')
Another, easier approach:
[y,m,d] = datevec(C,'mm/dd/yyyy')
tf = y == 2000
but note that for this to work the dates should be valid. C{3} is NOT a valid date ( was that intentionally, Jan? ) so that is why tf(3) is false ...
1 Commento
Ryan
il 2 Ott 2013
Categorie
Scopri di più su Characters and Strings in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!