remove whitespace from cell array

62 views (last 30 days)
jnaumann
jnaumann on 9 Jan 2015
Answered: Lev Vitkin on 17 Jan 2024
I have a cell array which looks something like this;
'DS 5376'
'FR 8241'
'B 1257'
'BG 09857'
'TR 3017'
I want to remove the central white space (or any white space to that matter) to get the following
'DS5376'
'FR8241'
'B1257'
'BG09857'
'TR3017'
Previous questions and suggested and I have tried using
cell_Array=strrep(cell_Array,' ','')
but to no avail - any ideas as to how I can acheive this?
Many thanks

Accepted Answer

Guillaume
Guillaume on 9 Jan 2015
If your example with strrep does not succeed, that would be because the whitespace is actually not a space. You can check what it is for sure by getting its ASCII value with:
double(cell_Array{1}(3))
If it is some other sort of whitespace (maybe a tab), you can use:
cell_Array = regexprep(cell_Array, '\s', '') %\s means any of \t, \f, \n, \r or \v
But if it is not, assuming your text is only letters, numbers or underscore, you can remove anything else with:
cell_Array = regexprep(cell_Array, '\W', '')
  4 Comments
Guillaume
Guillaume on 9 Jan 2015
What? None of the regexprep succeeded?
Can you show the output of
double(cell_Array{1}) %i.e. the ASCII values of the whole string
The proper syntax for the cellfun would be:
flight_no = cellfun(@(s) strrep(s, ' ', ''), flight_no, 'UniformOutput', false);
But strrep operates on cell array anyway, so there's no need for the cellfun anyway.
jnaumann
jnaumann on 9 Jan 2015
Your correction for the cellfun example worked - thanks a lot!

Sign in to comment.

More Answers (1)

Lev Vitkin
Lev Vitkin on 17 Jan 2024
flight_no = cellfun(@(s) s(~isspace(s)), flight_no, 'UniformOutput', false)

Categories

Find more on Characters and Strings 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!