diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/FullBNT-1.0.7/KPMtools/strsplit.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,53 @@
+function parts = strsplit(splitstr, str, option)
+%STRSPLIT Split string into pieces.
+%
+%   STRSPLIT(SPLITSTR, STR, OPTION) splits the string STR at every occurrence
+%   of SPLITSTR and returns the result as a cell array of strings.  By default,
+%   SPLITSTR is not included in the output.
+%
+%   STRSPLIT(SPLITSTR, STR, OPTION) can be used to control how SPLITSTR is
+%   included in the output.  If OPTION is 'include', SPLITSTR will be included
+%   as a separate string.  If OPTION is 'append', SPLITSTR will be appended to
+%   each output string, as if the input string was split at the position right
+%   after the occurrence SPLITSTR.  If OPTION is 'omit', SPLITSTR will not be
+%   included in the output.
+
+%   Author:      Peter J. Acklam
+%   Time-stamp:  2004-09-22 08:48:01 +0200
+%   E-mail:      pjacklam@online.no
+%   URL:         http://home.online.no/~pjacklam
+
+   nargsin = nargin;
+   error(nargchk(2, 3, nargsin));
+   if nargsin < 3
+      option = 'omit';
+   else
+      option = lower(option);
+   end
+
+   splitlen = length(splitstr);
+   parts = {};
+
+   while 1
+
+      k = strfind(str, splitstr);
+      if isempty(k)
+         parts{end+1} = str;
+         break
+      end
+
+      switch option
+         case 'include'
+            parts(end+1:end+2) = {str(1:k(1)-1), splitstr};
+         case 'append'
+            parts{end+1} = str(1 : k(1)+splitlen-1);
+         case 'omit'
+            parts{end+1} = str(1 : k(1)-1);
+         otherwise
+            error(['Invalid option string -- ', option]);
+      end
+
+
+      str = str(k(1)+splitlen : end);
+
+   end