converting abbreviation of months to numerical value
조회 수: 12 (최근 30일)
이전 댓글 표시
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
답변 (3개)
Ameer Hamza
2020년 10월 20일
Try something like this
C = {'jan', 'Mar', 'feb'}; % for example
M = month(cellfun(@(x) datetime(x, 'InputFormat', 'MMM'), C));
댓글 수: 2
Stephen23
2020년 10월 20일
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
Star Strider
2020년 10월 20일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!