comparison scripts/strings/strvcat.m @ 7208:a730e47fda4d

[project @ 2007-11-28 02:32:41 by jwe]
author jwe
date Wed, 28 Nov 2007 02:32:42 +0000
parents a1dbe9d80eee
children 3422f39573b1
comparison
equal deleted inserted replaced
7207:71c03c7239fb 7208:a730e47fda4d
41 endif 41 endif
42 42
43 nr = zeros (nargin, 1); 43 nr = zeros (nargin, 1);
44 nc = zeros (nargin, 1); 44 nc = zeros (nargin, 1);
45 K = 0; 45 K = 0;
46 nd = ndims (varargin {1}); 46 nd = ndims (varargin{1});
47 sz = size (varargin {1}); 47 sz = size (varargin{1});
48 for k = 1 : nargin 48 for k = 1:nargin
49 s = varargin{k}; 49 s = varargin{k};
50 if (iscell (s)) 50 if (iscell (s))
51 for k1 = 1:length(s) 51 for k1 = 1:length(s)
52 K = K+1; 52 K++;
53 nr(K) = size (s{k1}, 1); 53 nr(K) = size (s{k1}, 1);
54 nc(K) = size (s{k1}, 2); 54 nc(K) = size (s{k1}, 2);
55 if (ndims (s{k1}) != nd) 55 if (ndims (s{k1}) != nd)
56 error ("strvcat: dimension mismatch"); 56 error ("strvcat: dimension mismatch");
57 else 57 else
59 error ("strvcat: dimension mismatch"); 59 error ("strvcat: dimension mismatch");
60 endif 60 endif
61 endif 61 endif
62 endfor 62 endfor
63 else 63 else
64 K = K + 1; 64 K++;
65 nr(K) = size (s, 1); 65 nr(K) = size (s, 1);
66 nc(K) = size (s, 2); 66 nc(K) = size (s, 2);
67 if (ndims (s) != nd) 67 if (ndims (s) != nd)
68 error ("strvcat: dimension mismatch"); 68 error ("strvcat: dimension mismatch");
69 else 69 else
77 sz(1) = sum (nr); 77 sz(1) = sum (nr);
78 sz(2) = max (nc); 78 sz(2) = max (nc);
79 retval = char (ones (sz) * toascii (" ")); 79 retval = char (ones (sz) * toascii (" "));
80 80
81 idx = cell(nd,1); 81 idx = cell(nd,1);
82 for k = 3 : nd; 82 for k = 3:nd
83 idx {k} = sz {k}; 83 idx{k} = sz{k};
84 endfor 84 endfor
85 85
86 K = 0; 86 K = 0;
87 row_offset = 0; 87 row_offset = 0;
88 for k = 1 : nargin 88 for k = 1:nargin
89 s = varargin{k}; 89 s = varargin{k};
90 if (iscell (s)) 90 if (iscell (s))
91 for k1 = 1:length(s) 91 for k1 = 1:length(s)
92 K = K + 1; 92 K = K + 1;
93 idx{1} = [row_offset + 1 : row_offset + nr(k)]; 93 idx{1} = [row_offset + 1 : row_offset + nr(k)];
94 idx{2} = [1 : nc(K)]; 94 idx{2} = [1 : nc(K)];
95 retval(idx{:}) = char(s{k1}); 95 retval(idx{:}) = char(s{k1});
96 row_offset = row_offset + size (s{k1}, 1); 96 row_offset = row_offset + size (s{k1}, 1);
97 endfor 97 endfor
98 else 98 else
99 K = K + 1; 99 K++;
100 if (nc(K) > 0) 100 if (nc(K) > 0)
101 retval ((row_offset + 1) : (row_offset + nr(K)), 1:nc(K)) = char(s); 101 retval ((row_offset+1):(row_offset+nr(K)), 1:nc(K)) = char (s);
102 endif 102 endif
103 row_offset = row_offset + nr(K); 103 row_offset = row_offset + nr(K);
104 endif 104 endif
105 endfor 105 endfor
106 106