Mercurial > octave
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)) |