Mercurial > octave
changeset 31676:9be3a2706d62 stable
nchoosek.m: Fix regression with column vector input (bug #63538)
* nchoosek.m: Alway convert input to row vector. Add BIST test
for bug #63538.
author | Arun Giridhar <arungiridhar@gmail.com> |
---|---|
date | Mon, 19 Dec 2022 10:13:04 -0800 |
parents | e3b0fac6acde |
children | 8db976e36127 96d321d59ee3 |
files | scripts/specfun/nchoosek.m |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/specfun/nchoosek.m Mon Dec 19 12:00:11 2022 -0500 +++ b/scripts/specfun/nchoosek.m Mon Dec 19 10:13:04 2022 -0800 @@ -108,6 +108,7 @@ endif endif + v = v(:).'; # convert to row vector n = numel (v); if (n == 1 && isnumeric (v)) @@ -158,7 +159,7 @@ elseif (k == 1) C = v(:); elseif (k == n) - C = v(:).'; + C = v; elseif (k > n) C = v(zeros (0, k)); # return 0xk object for Matlab compatibility elseif (k == 2) @@ -167,7 +168,6 @@ y = cat (1, cellslices (v(:), 2:n, n*ones (1, n-1)){:}); C = [x, y]; elseif (k < n) - v = v(:).'; C = v(k:n); l = 1:n-k+1; for j = 2:k @@ -283,6 +283,10 @@ %! assert (x, uint8 (252)); %! assert (class (x), "uint8"); +%!test <*63538> +%! x = nchoosek ([1:3]', 2); +%! assert (x, [1 2; 1 3; 2 3]); + ## Test input validation %!error <Invalid call> nchoosek () %!error <Invalid call> nchoosek (1)