converting abbreviation of months to numerical value
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a large 1244x1 cell that contains jan, feb, mar,...ect and repeats. Is there an easy way to convert these to their respective numerical value (jan = 1, feb = 2, ...).
Thanks!
0 comentarios
Respuestas (3)
Ameer Hamza
el 20 de Oct. de 2020
Try something like this
C = {'jan', 'Mar', 'feb'}; % for example
M = month(cellfun(@(x) datetime(x, 'InputFormat', 'MMM'), C));
2 comentarios
Ameer Hamza
el 20 de Oct. de 2020
Is your data available as a table? Can you attach it as a .mat file?
Stephen23
el 20 de Oct. de 2020
ismember makes this easy:
>> D = {'mar','apr','nov','may'}; % your data
>> C = {'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'};
>> [~,X] = ismember(lower(D),C)
X =
3 4 11 5
0 comentarios
Star Strider
el 20 de Oct. de 2020
Another approach:
mnth_nr = @(mth) find(strcmpi(mth, {'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'}));
This works with a single input:
Out = mnth_nr('May')
producing:
Out =
5
and can be vectorised using cellfun with a table:
T1 = cell2table({'Feb'; 'jul'; 'Dec'}) % Create Table To Test Code
Out2 = cellfun(@(x)mnth_nr(x), T1.Var1)
producing:
T1 =
3×1 table
Var1
_______
{'Feb'}
{'jul'}
{'Dec'}
Out2 =
2
7
12
.
0 comentarios
Ver también
Categorías
Más información sobre Data Type Conversion en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!