How do I delete extra values separated by comma

1 view (last 30 days)
I have some stuff in a dataset (cell) I need removed.
Essentially my dataset looks like this:
XX
XY, XX
YZ
YY
ZZ, YY, XY
However I need only the first value of each row. I've tried with some regex but I'm still fairly inexperienced with it so it doesn't yield the results I'm aiming for.
Thanks :)

Accepted Answer

Adam
Adam on 24 Nov 2016
Edited: Adam on 24 Nov 2016
result = cellfun( @(x) x{1}, cellfun( @(x) strrep( strsplit(x), ',', '' ), myCell, 'UniformOutput', false ), 'UniformOutput', false );
works I think, but it doesn't win any prizes for neatness. You can split it over multiple lines to be a bit less daunting if you prefer.
No need for regexp though.
If your values are always just 2 letters then you can do simpler things, just accessing the first 2 elements of the cell and ignoring what comes next, but obviously that fails in the generic case.
  1 Comment
Sebastian
Sebastian on 24 Nov 2016
Thanks. That did the trick! The values are poorly entered hospital codes that I'm trying to streamline. So they come in many shapes and sizes unfortunately.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!