Mercurial > hg > octave-lyh
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 |