reshaping a vector of dates (2)
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear all, I have a cell column vector that contains the following elements
AAA={'AUGUST-SEPTEMBER 1999' ...
'OCTOBER-NOVEMBER 1999'...
'DECEMBER-JANUARY 2000'...
'FEBRUARY-MARCH 2000'...
'APRIL-MAY 2000'...
'JUNE-JULY 2000'}
I want to change that vector so as to have
AAA={'AS 1999'...
'ON 1999'...
'DJ 2000'...
'FM 2000'...
'AM 2000'...
'JJ 2000'}
Where AS for example stands for 'AUGUST-SEPTEMBER’
thanks
[EDITED, code formatted, Jan]
2 commentaires
Réponse acceptée
Andrei Bobrov
le 20 Juil 2012
Modifié(e) : Andrei Bobrov
le 20 Juil 2012
g = regexp(AAA,'(^\w)|(-\w)|( \d*)','match');
AAA = strrep(cellstr(cell2mat(cat(1,g{:}))),'-','');
EDIT
3 commentaires
Plus de réponses (1)
Jan
le 20 Juil 2012
Modifié(e) : Jan
le 20 Juil 2012
AAA={'AUGUST-SEPTEMBER 1999'; ...
'OCTOBER-NOVEMBER 1999'; ...
'DECEMBER-JANUARY 2000'; ...
'FEBRUARY-MARCH 2000'; ...
'APRIL-MAY 2000'; ...
'JUNE-JULY 2000'};
Replace = {'AUGUST-SEPTEMBER', 'AS'; ...
'OCTOBER-NOVEMBER', 'ON'; ...
'DECEMBER-JANUARY', 'DJ';, ...
'FEBRUARY-MARCH', 'FM'; ...
'APRIL-MAY', 'AM'; ...
'JUNE-JULY', 'JJ'};
for i = 1:size(Replace, 1)
AAA = strrep(AAA, Replace{i, 1}, Replace{i, 2});
end
[EDITED] faster:
...
for i = 1:size(Replace, 1)
key = Replace{i, 1};
match = strncmp(AAA, key, length(key));
AAA(match) = strrep(AAA(match), key, Replace{i, 2});
end
While the 1st method needs 3.93 seconds if AAA is a {1572864 x 1} cell string, the smarter 2nd methods needs 1.42 seconds.
4 commentaires
Jan
le 20 Juil 2012
Modifié(e) : Jan
le 20 Juil 2012
I still do not understand, why the construction of "Replace" should take a lot of time and why this is influenced by the size of AAA. A vector of length 300 cannot be called "huge".
It seems to me like you did not post the complete problem. Unfortunately your decision to omit obviously necessary details leads to the fact, that the creation of my answer has wasted my time - and your time also. Please post all relevant details in future questions, especially the sizes of the real data.
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!