annotate scripts/strings/strcat.m @ 20166:196871335aa8

Allow call with empty argument list in strcat related functions (bug #44981) * libinterp/corefcn/strfns.cc (strvcat): return an empty string for an empty argument list. Simply dropping the input checking, will return an empty string. This makes it more consistent with cat(), vertcat, and horzcat() functions, which return [] for this cases. It makes it easier to support "strcat (cell{:})" when cell is empty. * scripts/strings/cstrcat.m, scripts/strings/strcat.m: same as above. But because [cellstr{:}] when cellstr is empty returns double ([]), we specifically return "".
author Carnë Draug <carandraug@octave.org>
date Fri, 01 May 2015 16:21:39 +0100
parents 4197fc428c7d
children 5212cda4ac0e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19697
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19593
diff changeset
1 ## Copyright (C) 1994-2015 John W. Eaton
10032
691b4ba32425 vectorize strcat
Jaroslav Hajek <highegg@gmail.com>
parents: 9036
diff changeset
2 ## Copyright (C) 2009 Jaroslav Hajek
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
3 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
4 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
5 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
6 ## Octave is free software; you can redistribute it and/or modify it
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
7 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6145
diff changeset
8 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6145
diff changeset
9 ## your option) any later version.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
10 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
11 ## Octave is distributed in the hope that it will be useful, but
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
14 ## General Public License for more details.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
15 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2303
diff changeset
16 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6145
diff changeset
17 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6145
diff changeset
18 ## <http://www.gnu.org/licenses/>.
920
1677bb6533fb [project @ 1994-11-14 16:37:05 by jwe]
jwe
parents:
diff changeset
19
3361
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
20 ## -*- texinfo -*-
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
21 ## @deftypefn {Function File} {} strcat (@var{s1}, @var{s2}, @dots{})
8442
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
22 ## Return a string containing all the arguments concatenated
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
23 ## horizontally. If the arguments are cell strings, @code{strcat}
8442
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
24 ## returns a cell string with the individual cells concatenated.
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
25 ## For numerical input, each element is converted to the
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
26 ## corresponding ASCII character. Trailing white space for any
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
27 ## character string input is eliminated before the strings are
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
28 ## concatenated. Note that cell string values do @strong{not} have
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
29 ## whitespace trimmed.
14821
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
30 ##
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10037
diff changeset
31 ## For example:
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3361
diff changeset
32 ##
3361
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
33 ## @example
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
34 ## @group
14821
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
35 ## strcat ("|", " leading space is preserved", "|")
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
36 ## @result{} | leading space is preserved|
14821
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
37 ## @end group
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
38 ## @end example
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
39 ##
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
40 ## @example
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
41 ## @group
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
42 ## strcat ("|", "trailing space is eliminated ", "|")
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
43 ## @result{} |trailing space is eliminated|
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
44 ## @end group
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
45 ## @end example
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
46 ##
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
47 ## @example
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
48 ## @group
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
49 ## strcat ("homogeneous space |", " ", "| is also eliminated")
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
50 ## @result{} homogeneous space || is also eliminated
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
51 ## @end group
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
52 ## @end example
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
53 ##
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
54 ## @example
aad7d7ee8e8a Clarify doc string for strcat.
Ben Abbott <bpabbott@mac.com>
parents: 14363
diff changeset
55 ## @group
3361
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
56 ## s = [ "ab"; "cde" ];
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
57 ## strcat (s, s, s)
14327
4d917a6a858b doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
58 ## @result{}
17859
5e4cac8f4e43 strcat.m: Fix bad example in docstring (bug #40486).
Rik <rik@octave.org>
parents: 17744
diff changeset
59 ## "ababab "
3361
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
60 ## "cdecdecde"
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
61 ## @end group
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
62 ## @end example
8442
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
63 ##
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
64 ## @example
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
65 ## @group
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
66 ## s = @{ "ab"; "cd " @};
8442
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
67 ## strcat (s, s, s)
14327
4d917a6a858b doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
68 ## @result{}
8442
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
69 ## @{
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
70 ## [1,1] = ababab
19593
446c46af4b42 strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents: 17859
diff changeset
71 ## [2,1] = cd cd cd
8442
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
72 ## @}
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
73 ## @end group
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
74 ## @end example
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
75 ##
502e58a0d44f Fix docstrings, add examples, references and tests to string functions
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 8143
diff changeset
76 ## @seealso{cstrcat, char, strvcat}
3361
4f40efa995c1 [project @ 1999-11-19 21:19:37 by jwe]
jwe
parents: 3180
diff changeset
77 ## @end deftypefn
2697
6243c37ae2c5 [project @ 1997-02-18 17:51:21 by jwe]
jwe
parents: 2314
diff changeset
78
2314
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
79 ## Author: jwe
949ab8eba8bc [project @ 1996-07-12 03:58:02 by jwe]
jwe
parents: 2313
diff changeset
80
6138
c5874b47d571 [project @ 2006-11-03 18:26:11 by jwe]
jwe
parents: 6046
diff changeset
81 function st = strcat (varargin)
920
1677bb6533fb [project @ 1994-11-14 16:37:05 by jwe]
jwe
parents:
diff changeset
82
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
83 if (nargin == 0)
20166
196871335aa8 Allow call with empty argument list in strcat related functions (bug #44981)
Carnë Draug <carandraug@octave.org>
parents: 19697
diff changeset
84 st = "";
196871335aa8 Allow call with empty argument list in strcat related functions (bug #44981)
Carnë Draug <carandraug@octave.org>
parents: 19697
diff changeset
85 elseif (nargin == 1)
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
86 st = varargin{1};
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
87 else
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
88 ## Convert to cells of strings
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
89 uo = "uniformoutput";
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
90 reals = cellfun ("isreal", varargin);
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
91 if (any (reals))
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
92 varargin(reals) = cellfun ("char", varargin(reals), uo, false);
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
93 endif
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
94 chars = cellfun ("isclass", varargin, "char");
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
95 allchar = all (chars);
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
96 varargin(chars) = cellfun ("cellstr", varargin(chars), uo, false);
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
97 if (! all (cellfun ("isclass", varargin, "cell")))
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
98 error ("strcat: inputs must be strings or cells of strings");
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
99 endif
7540
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
100
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
101 ## We don't actually need to bring all cells to common size, because
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
102 ## cellfun can now expand scalar cells.
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
103 err = common_size (varargin{:});
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
104
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
105 if (err)
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
106 error ("strcat: arguments must be the same size, or be scalars");
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
107 endif
7540
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
108
17385
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
109 ## Cellfun handles everything for us.
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
110 st = cellfun ("horzcat", varargin{:}, uo, false);
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
111
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
112 if (allchar)
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
113 ## If all inputs were strings, return strings.
5ca5aff90ffd strcat.m: Clarify in docstring that space isn't stripped from cell string inputs.
Rik <rik@octave.org>
parents: 17338
diff changeset
114 st = char (st);
7504
ddcf233d765b detect cellstr args in strcat
John W. Eaton <jwe@octave.org>
parents: 7411
diff changeset
115 endif
920
1677bb6533fb [project @ 1994-11-14 16:37:05 by jwe]
jwe
parents:
diff changeset
116 endif
1677bb6533fb [project @ 1994-11-14 16:37:05 by jwe]
jwe
parents:
diff changeset
117
7504
ddcf233d765b detect cellstr args in strcat
John W. Eaton <jwe@octave.org>
parents: 7411
diff changeset
118 endfunction
920
1677bb6533fb [project @ 1994-11-14 16:37:05 by jwe]
jwe
parents:
diff changeset
119
17338
1c89599167a6 maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents: 17281
diff changeset
120
6138
c5874b47d571 [project @ 2006-11-03 18:26:11 by jwe]
jwe
parents: 6046
diff changeset
121 ## test the dimensionality
c5874b47d571 [project @ 2006-11-03 18:26:11 by jwe]
jwe
parents: 6046
diff changeset
122 ## 1d
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
123 %!assert (strcat ("ab ", "ab "), "abab")
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
124 %!assert (strcat ({"ab "}, "ab "), {"ab ab"})
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
125 %!assert (strcat ("ab ", {"ab "}), {"abab "})
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
126 %!assert (strcat ({"ab "}, {"ab "}), {"ab ab "})
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
127 %!assert (strcat ("", "ab"), "ab")
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
128 %!assert (strcat ("", {"ab"}, {""}), {"ab"})
6138
c5874b47d571 [project @ 2006-11-03 18:26:11 by jwe]
jwe
parents: 6046
diff changeset
129 ## 2d
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
130 %!assert (strcat (["ab ";"cde"], ["ab ";"cde"]), ["abab ";"cdecde"])
7411
83a8781b529d [project @ 2008-01-22 21:52:25 by jwe]
jwe
parents: 7017
diff changeset
131
7540
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
132 ## test for deblanking implied trailing spaces of character input
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
133 %!assert (strcat ("foo", "bar"), "foobar")
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
134 %!assert (strcat (["a"; "bb"], ["foo"; "bar"]), ["afoo "; "bbbar"])
7540
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
135
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
136 ## test for mixing character and cell inputs
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
137 %!assert (strcat ("a", {"bc", "de"}, "f"), {"abcf", "adef"})
7411
83a8781b529d [project @ 2008-01-22 21:52:25 by jwe]
jwe
parents: 7017
diff changeset
138
7540
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
139 ## test for scalar strings with vector strings
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
140 %!assert (strcat (["a"; "b"], "c"), ["ac"; "bc"])
7540
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
141
3422f39573b1 strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents: 7504
diff changeset
142 ## test with cells with strings of differing lengths
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
143 %!assert (all (strcmp (strcat ({"a", "bb"}, "ccc"), {"accc", "bbccc"})))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
144 %!assert (all (strcmp (strcat ("a", {"bb", "ccc"}), {"abb", "accc"})))
7411
83a8781b529d [project @ 2008-01-22 21:52:25 by jwe]
jwe
parents: 7017
diff changeset
145
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14821
diff changeset
146 %!assert (strcat (1, 2), strcat (char (1), char (2)))
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14821
diff changeset
147 %!assert (strcat ("", 2), strcat ([], char (2)))
7411
83a8781b529d [project @ 2008-01-22 21:52:25 by jwe]
jwe
parents: 7017
diff changeset
148
20166
196871335aa8 Allow call with empty argument list in strcat related functions (bug #44981)
Carnë Draug <carandraug@octave.org>
parents: 19697
diff changeset
149 %!assert (strcat (), "")
8143
3a4694d67dbb strcat.m: Compatibility of non-char data
Ben Abbott <bpabbott@mac.com>
parents: 7813
diff changeset
150