how to match with random cell name with varied format
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jiali
am 23 Dez. 2014
Kommentiert: Image Analyst
am 23 Dez. 2014
I have a series of cell array
XXXX-20-0266-3.dat
XXXX-10-01-12_03.03.03 AM.dat
XXXX-10-01-12_01.03.03 PM.dat
XXXX-30-0333.dat
I want to match with AM or PM, I try to use regexp function, regexp(cell{2}, [xxxx '-?\w*AM.csv'], it does not work. how I can achieve it since the middle always change its length and content? Please help me. I appreciate for your time and efforts.
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 23 Dez. 2014
Not exactly sure what kind of variable you want to get, but study this snippet:
ca = {'XXXX-20-0266-3.dat';
'XXXX-10-01-12_03.03.03 AM.dat';
'XXXX-10-01-12_01.03.03 PM.dat';
'XXXX-30-0333.dat'}
amIndexes = strfind(ca, 'AM') % amIndexes is a cell
pmIndexes = strfind(ca, 'PM') % pmIndexes is a cell
logicalIndexesAM = ~cellfun(@isempty, amIndexes)
logicalIndexesPM = ~cellfun(@isempty, pmIndexes)
linearIndexesAM = find(logicalIndexesAM)
linearIndexesPM = find(logicalIndexesPM)
In the command window:
ca =
'XXXX-20-0266-3.dat'
'XXXX-10-01-12_03.03.03 AM.dat'
'XXXX-10-01-12_01.03.03 PM.dat'
'XXXX-30-0333.dat'
amIndexes =
[]
[24]
[]
[]
pmIndexes =
[]
[]
[24]
[]
logicalIndexesAM =
0
1
0
0
logicalIndexesPM =
0
0
1
0
linearIndexesAM =
2
linearIndexesPM =
3
Does that help at all? Can you get whatever you need from that? Or do you need more help?
2 Kommentare
Image Analyst
am 23 Dez. 2014
I didn't quite follow. But can't you just use strfind() like I did to search for whatever you want?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical 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!