Finding common strings elements in array?
    6 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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 Kommentare
  Image Analyst
      
      
 am 30 Sep. 2013
				Can you attach the workbook, or at least enough of it so we can try to read it in?
Antworten (2)
  Jan
      
      
 am 30 Sep. 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]
2 Kommentare
  Jan
      
      
 am 2 Okt. 2013
				Then please read the instructions provided inside the file, especially the point "COMPILATION". There you find a link to download pre-compiled MEX files also.
  Jos (10584)
      
      
 am 2 Okt. 2013
        
      Bearbeitet: Jos (10584)
      
      
 am 2 Okt. 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 ...
Siehe auch
Kategorien
				Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



