Replacing character withing an cell using cellfun
16 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Patrick
le 5 Juin 2018
Commenté : Walter Roberson
le 11 Juin 2018
I have a cell array called "ImpactTime" within a table called "hits" (see figure below). I'm attempting to change the 6th character in ImpactTime from a "." to a ":". I'm aware I can do this with a for loop
for i = 1:length(hits.ImpactTime);
hits.ImpactTime{i,1}(6)=':';
end
I was wondering if there was a way I could accomplish this using cellfun. I've tried a few methods but it won't allow me change a specific subset within each cell.
I have tried the following
hits.ImpactTime = cellfun(@(x) ':', hits.ImpactTime{:}(6))
0 commentaires
Réponse acceptée
Walter Roberson
le 5 Juin 2018
hits.ImpactTime = regexprep( hits.ImpactTime, '\.(\d\d\d)', ':\1');
Note that this assumes that there are always exactly three digits after the . that is to be replaced and assumes that pattern does not occur anywhere else in the input string.
2 commentaires
Walter Roberson
le 11 Juin 2018
hits.ImpactTime = cellfun(@(S) [S(1:end-4), ':', S(end-2:end)], hints.ImpactTime, 'uniform', 0);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Cell Arrays 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!