Replacing character withing an cell using cellfun
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Patrick
il 5 Giu 2018
Commentato: Walter Roberson
il 11 Giu 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 Commenti
Risposta accettata
Walter Roberson
il 5 Giu 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 Commenti
Walter Roberson
il 11 Giu 2018
hits.ImpactTime = cellfun(@(S) [S(1:end-4), ':', S(end-2:end)], hints.ImpactTime, 'uniform', 0);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Cell Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!