Azzera filtri
Azzera filtri

Help splitting string using strsplit

6 visualizzazioni (ultimi 30 giorni)
I have a large set of data which is presented as a string, for example:
1;2;3;4;5;6;7;8 etc...
I use:
strsplit(data,';')
and that breaks everything up into individual cells.
However I have found an issue with some data. My logger is 100% reliable so sometimes I get data which looks like:
;;;;;6;7;8 etc...
Using the strsplit command I get:
NaN 6 7 8
What I'd like is
NaN NaN NaN NaN NaN 6 7 8
Any suggestions?

Risposta accettata

Geoff Hayes
Geoff Hayes il 4 Gen 2019
Modificato: Geoff Hayes il 4 Gen 2019
Richard - from strsplit try doing the following
strsplit(data, ';', 'CollapseDelimiters', false)
so that the consecutive empty delimiters are not collapsed into one cell.

Più risposte (2)

madhan ravi
madhan ravi il 4 Gen 2019
Modificato: madhan ravi il 7 Gen 2019
str=';;;;;6;7;8';
expr=';';
C=str2double(regexp(str,expr,'split')) % edited after Jan’s comment
%[~,c]=regexp(str,expr,'match','split');
%Result=cellfun(@str2double,c)
Gives:
Result =
NaN NaN NaN NaN NaN 6 7 8
  2 Commenti
Jan
Jan il 7 Gen 2019
Modificato: Jan il 7 Gen 2019
+1. regexp returns the wanted cell string as 1st output when using 'split' without 'match':
C = regexp(str, expr, 'split')
and str2double works with a cellstring directly. So this is simpler and faster:
Result = str2double(regexp(str, expr, 'split'))
madhan ravi
madhan ravi il 7 Gen 2019
Echt toll Jan! Danke schön , selbsverständlich jetzt..

Accedi per commentare.


Richard Youden
Richard Youden il 7 Gen 2019
Thanks for the responses, greatly appreciated.
Richard

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Tag

Prodotti


Release

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by