Replacing character withing an cell using cellfun
    6 views (last 30 days)
  
       Show older comments
    
    Patrick
 on 5 Jun 2018
  
    
    
    
    
    Commented: Walter Roberson
      
      
 on 11 Jun 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 Comments
Accepted Answer
  Walter Roberson
      
      
 on 5 Jun 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 Comments
  Walter Roberson
      
      
 on 11 Jun 2018
				hits.ImpactTime = cellfun(@(S) [S(1:end-4), ':', S(end-2:end)], hints.ImpactTime, 'uniform', 0);
More Answers (0)
See Also
Categories
				Find more on Cell Arrays in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
