Mercurial > hg > camir-aes2014
comparison toolboxes/FullBNT-1.0.7/KPMtools/strsplit.m @ 0:e9a9cd732c1e tip
first hg version after svn
| author | wolffd |
|---|---|
| date | Tue, 10 Feb 2015 15:05:51 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:e9a9cd732c1e |
|---|---|
| 1 function parts = strsplit(splitstr, str, option) | |
| 2 %STRSPLIT Split string into pieces. | |
| 3 % | |
| 4 % STRSPLIT(SPLITSTR, STR, OPTION) splits the string STR at every occurrence | |
| 5 % of SPLITSTR and returns the result as a cell array of strings. By default, | |
| 6 % SPLITSTR is not included in the output. | |
| 7 % | |
| 8 % STRSPLIT(SPLITSTR, STR, OPTION) can be used to control how SPLITSTR is | |
| 9 % included in the output. If OPTION is 'include', SPLITSTR will be included | |
| 10 % as a separate string. If OPTION is 'append', SPLITSTR will be appended to | |
| 11 % each output string, as if the input string was split at the position right | |
| 12 % after the occurrence SPLITSTR. If OPTION is 'omit', SPLITSTR will not be | |
| 13 % included in the output. | |
| 14 | |
| 15 % Author: Peter J. Acklam | |
| 16 % Time-stamp: 2004-09-22 08:48:01 +0200 | |
| 17 % E-mail: pjacklam@online.no | |
| 18 % URL: http://home.online.no/~pjacklam | |
| 19 | |
| 20 nargsin = nargin; | |
| 21 error(nargchk(2, 3, nargsin)); | |
| 22 if nargsin < 3 | |
| 23 option = 'omit'; | |
| 24 else | |
| 25 option = lower(option); | |
| 26 end | |
| 27 | |
| 28 splitlen = length(splitstr); | |
| 29 parts = {}; | |
| 30 | |
| 31 while 1 | |
| 32 | |
| 33 k = strfind(str, splitstr); | |
| 34 if isempty(k) | |
| 35 parts{end+1} = str; | |
| 36 break | |
| 37 end | |
| 38 | |
| 39 switch option | |
| 40 case 'include' | |
| 41 parts(end+1:end+2) = {str(1:k(1)-1), splitstr}; | |
| 42 case 'append' | |
| 43 parts{end+1} = str(1 : k(1)+splitlen-1); | |
| 44 case 'omit' | |
| 45 parts{end+1} = str(1 : k(1)-1); | |
| 46 otherwise | |
| 47 error(['Invalid option string -- ', option]); | |
| 48 end | |
| 49 | |
| 50 | |
| 51 str = str(k(1)+splitlen : end); | |
| 52 | |
| 53 end |
