Filter löschen
Filter löschen

remove whitespace from cell array

33 Ansichten (letzte 30 Tage)
jnaumann
jnaumann am 9 Jan. 2015
Beantwortet: Lev Vitkin am 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

Akzeptierte Antwort

Guillaume
Guillaume am 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 Kommentare
Guillaume
Guillaume am 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 am 9 Jan. 2015
Your correction for the cellfun example worked - thanks a lot!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by