File Exchange

image thumbnail

Split delimiter separated strings into a matrix

version 1.0 (2.05 KB) by

Function to split a delimiter separated string into a matrix of doubles.

6 Ratings



View License

Function: outmatrix = strsplit(inpstr[,delimiter])

inpstring, this is the input string which is a delimiter separated string: 345.56,376.5,4334.34 .
delimiter, optional if not given, ',' is taken.
outmatrix: if all values in inputstring are numerical a double array is given otherwise a cell array.

Comments and Ratings (10)

Gie Spaepen

Gie Spaepen (view profile)

Thanks for all the comments and downloads. I left my lab for a while now but I will implement your suggestions and make a new release of this script.

This code has a bug for delimiters longer than 1 char. You need to change this lines to :

strtpos = idx(i-1) + sizedelimiter;
tempsplit(i+1) = {inpstr(idx(i)+ sizedelimiter : endpos)};

@Schwarz: if strread does the same, and probably textscan too, why does matlab not provide the necessesary documentation and examples ?

The handling of the "no delimiter in string .." case is not necessary and results in an inconsistent interface that results in unnecessary checking of return values.
I would leave out the check on "size(idx) == 0" and initialize
tempsplit as follows tempsplit = {inpstr};

Thank you for posting this routine that in contrast to regexp(s,'\t','split') (since R2007b) works also on older Matlab versions.

jjcai Cai

jjcai Cai

One of the problems of this function is that it does not work with delimiter '\t'.

One of many solutions by (I found from google groups) is as follows:

>> s=sprintf('one\ttwo three\tfour');
>> r=regexp(s,'\t','split')

Siamak Faridani

Siamak Faridani (view profile)

Nikola Toljic

Great. Thanks.

Joel Sander

It was simple and did exactly as advertised.

Urs Schwarz (us)

strread will do the same - and - it comes with more options

Michael Robbins

I could be wrong, but I think there is a much better, vectorized, solution available on CSSM

MATLAB Release
MATLAB 6.5 (R13)

Inspired: rsplit, latexfigure

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video