comparison scripts/general/prepad.m @ 22210:30eefd9ddb48

prepad, postpad: do nothing wen input is already of the right size.
author Carnë Draug <carandraug@octave.org>
date Fri, 05 Aug 2016 22:04:12 +0100
parents 516bb87ea72e
children bac0d6f07a3e
comparison
equal deleted inserted replaced
22209:cfa684a0539d 22210:30eefd9ddb48
71 sz(nd+1:dim) = 1; 71 sz(nd+1:dim) = 1;
72 endif 72 endif
73 73
74 d = sz(dim); 74 d = sz(dim);
75 75
76 if (d >= l) 76 if (d == l)
77 ## This optimization makes sense because the function is used to match
78 ## the length between two vectors not knowing a priori is larger, and
79 ## allow for:
80 ## ml = max (numel (v1), numel (v2));
81 ## v1 = prepad (v1, ml);
82 ## v2 = prepad (v2, ml);
83 y = x;
84 elseif (d >= l)
77 idx = repmat ({':'}, nd, 1); 85 idx = repmat ({':'}, nd, 1);
78 idx{dim} = d-l+1:d; 86 idx{dim} = d-l+1:d;
79 y = x(idx{:}); 87 y = x(idx{:});
80 else 88 else
81 sz(dim) = l - d; 89 sz(dim) = l - d;
88 %!assert (prepad ([1,2], 4), [0,0,1,2]) 96 %!assert (prepad ([1,2], 4), [0,0,1,2])
89 %!assert (prepad ([1;2], 4), [0;0;1;2]) 97 %!assert (prepad ([1;2], 4), [0;0;1;2])
90 98
91 %!assert (prepad ([1,2], 4, 2), [2,2,1,2]) 99 %!assert (prepad ([1,2], 4, 2), [2,2,1,2])
92 %!assert (prepad ([1;2], 4, 2), [2;2;1;2]) 100 %!assert (prepad ([1;2], 4, 2), [2;2;1;2])
101
102 %!assert (prepad ([1 2], 2), [1 2])
103 %!assert (prepad ([1; 2], 2), [1; 2])
104 %!assert (prepad ([1; 2], 2, 3, 2), [3 1; 3 2])
93 105
94 %!assert (prepad ([1,2], 2, 2, 1), [2,2;1,2]) 106 %!assert (prepad ([1,2], 2, 2, 1), [2,2;1,2])
95 107
96 %!assert (prepad ([1,2], 2, 2, 3), reshape ([2,2,1,2], 1, 2, 2)) 108 %!assert (prepad ([1,2], 2, 2, 3), reshape ([2,2,1,2], 1, 2, 2))
97 %!assert (prepad ([1;2], 2, 2, 3), reshape ([2;2;1;2], 2, 1, 2)) 109 %!assert (prepad ([1;2], 2, 2, 3), reshape ([2;2;1;2], 2, 1, 2))