Mercurial > octave
comparison scripts/special-matrix/vander.m @ 30875:5d3faba0342e
doc: Ensure documentation lists output argument when it exists for all m-files.
For new users of Octave it is best to show explicit calling forms
in the documentation and to show a return argument when it exists.
* bp-table.cc, shift.m, accumarray.m, accumdim.m, bincoeff.m, bitcmp.m,
bitget.m, bitset.m, blkdiag.m, celldisp.m, cplxpair.m, dblquad.m, flip.m,
fliplr.m, flipud.m, idivide.m, int2str.m, interpft.m, logspace.m, num2str.m,
polyarea.m, postpad.m, prepad.m, randi.m, repmat.m, rng.m, rot90.m, rotdim.m,
structfun.m, triplequad.m, uibuttongroup.m, uicontrol.m, uipanel.m,
uipushtool.m, uitoggletool.m, uitoolbar.m, waitforbuttonpress.m, help.m,
__additional_help_message__.m, hsv.m, im2double.m, im2frame.m, javachk.m,
usejava.m, argnames.m, char.m, formula.m, inline.m, __vectorize__.m, findstr.m,
flipdim.m, strmatch.m, vectorize.m, commutation_matrix.m, cond.m, cross.m,
duplication_matrix.m, expm.m, orth.m, rank.m, rref.m, trace.m, vech.m, cast.m,
compare_versions.m, delete.m, dir.m, fileattrib.m, grabcode.m, gunzip.m,
inputname.m, license.m, list_primes.m, ls.m, mexext.m, movefile.m,
namelengthmax.m, nargoutchk.m, nthargout.m, substruct.m, swapbytes.m, ver.m,
verLessThan.m, what.m, fminunc.m, fsolve.m, fzero.m, optimget.m, __fdjac__.m,
matlabroot.m, savepath.m, campos.m, camroll.m, camtarget.m, camup.m, camva.m,
camzoom.m, clabel.m, diffuse.m, legend.m, orient.m, rticks.m, specular.m,
thetaticks.m, xlim.m, xtickangle.m, xticklabels.m, xticks.m, ylim.m,
ytickangle.m, yticklabels.m, yticks.m, zlim.m, ztickangle.m, zticklabels.m,
zticks.m, ellipsoid.m, isocolors.m, isonormals.m, stairs.m, surfnorm.m,
__actual_axis_position__.m, __pltopt__.m, close.m, graphics_toolkit.m, pan.m,
print.m, printd.m, __ghostscript__.m, __gnuplot_print__.m, __opengl_print__.m,
rotate3d.m, subplot.m, zoom.m, compan.m, conv.m, poly.m, polyaffine.m,
polyder.m, polyint.m, polyout.m, polyreduce.m, polyvalm.m, roots.m, prefdir.m,
prefsfile.m, profexplore.m, profexport.m, profshow.m, powerset.m, unique.m,
arch_rnd.m, arma_rnd.m, autoreg_matrix.m, bartlett.m, blackman.m, detrend.m,
durbinlevinson.m, fftconv.m, fftfilt.m, fftshift.m, fractdiff.m, hamming.m,
hanning.m, hurst.m, ifftshift.m, rectangle_lw.m, rectangle_sw.m, triangle_lw.m,
sinc.m, sinetone.m, sinewave.m, spectral_adf.m, spectral_xdf.m, spencer.m,
ilu.m, __sprand__.m, sprand.m, sprandn.m, sprandsym.m, treelayout.m, beta.m,
betainc.m, betaincinv.m, betaln.m, cosint.m, expint.m, factorial.m, gammainc.m,
gammaincinv.m, lcm.m, nthroot.m, perms.m, reallog.m, realpow.m, realsqrt.m,
sinint.m, hadamard.m, hankel.m, hilb.m, invhilb.m, magic.m, pascal.m, rosser.m,
toeplitz.m, vander.m, wilkinson.m, center.m, corr.m, cov.m, discrete_cdf.m,
discrete_inv.m, discrete_pdf.m, discrete_rnd.m, empirical_cdf.m,
empirical_inv.m, empirical_pdf.m, empirical_rnd.m, kendall.m, kurtosis.m,
mad.m, mean.m, meansq.m, median.m, mode.m, moment.m, range.m, ranks.m,
run_count.m, skewness.m, spearman.m, statistics.m, std.m, base2dec.m,
bin2dec.m, blanks.m, cstrcat.m, deblank.m, dec2base.m, dec2bin.m, dec2hex.m,
hex2dec.m, index.m, regexptranslate.m, rindex.m, strcat.m, strjust.m,
strtrim.m, strtrunc.m, substr.m, untabify.m, __have_feature__.m,
__prog_output_assert__.m, __run_test_suite__.m, example.m, fail.m, asctime.m,
calendar.m, ctime.m, date.m, etime.m:
Add return arguments to @deftypefn macros where they were missing. Rename
variables in functions (particularly generic "retval") to match documentation.
Rename some return variables for (hopefully) better clarity (e.g., 'ax' to 'hax'
to indicate it is a graphics handle to an axes object).
author | Rik <rik@octave.org> |
---|---|
date | Wed, 30 Mar 2022 20:40:27 -0700 |
parents | 796f54d4ddbf |
children | 597f3ee61a48 |
comparison
equal
deleted
inserted
replaced
30874:2b07748dbae3 | 30875:5d3faba0342e |
---|---|
22 ## <https://www.gnu.org/licenses/>. | 22 ## <https://www.gnu.org/licenses/>. |
23 ## | 23 ## |
24 ######################################################################## | 24 ######################################################################## |
25 | 25 |
26 ## -*- texinfo -*- | 26 ## -*- texinfo -*- |
27 ## @deftypefn {} {} vander (@var{c}) | 27 ## @deftypefn {} {@var{V} =} vander (@var{c}) |
28 ## @deftypefnx {} {} vander (@var{c}, @var{n}) | 28 ## @deftypefnx {} {@var{V} =} vander (@var{c}, @var{n}) |
29 ## Return the @nospell{Vandermonde} matrix whose next to last column is | 29 ## Return the @nospell{Vandermonde} matrix whose next to last column is |
30 ## @var{c}. | 30 ## @var{c}. |
31 ## | 31 ## |
32 ## If @var{n} is specified, it determines the number of columns; otherwise, | 32 ## If @var{n} is specified, it determines the number of columns; otherwise, |
33 ## @var{n} is taken to be equal to the length of @var{c}. | 33 ## @var{n} is taken to be equal to the length of @var{c}. |
56 ## | 56 ## |
57 ## @end ifnottex | 57 ## @end ifnottex |
58 ## @seealso{polyfit} | 58 ## @seealso{polyfit} |
59 ## @end deftypefn | 59 ## @end deftypefn |
60 | 60 |
61 function retval = vander (c, n) | 61 function V = vander (c, n) |
62 | 62 |
63 if (nargin == 1) | 63 if (nargin < 1) |
64 n = length (c); | |
65 elseif (nargin != 2) | |
66 print_usage (); | 64 print_usage (); |
67 endif | 65 endif |
68 | 66 |
69 if (! isvector (c)) | 67 if (! isvector (c)) |
70 error ("vander: polynomial C must be a vector"); | 68 error ("vander: polynomial C must be a vector"); |
71 endif | 69 endif |
72 | 70 |
71 if (nargin == 1) | |
72 n = length (c); | |
73 elseif (! isscalar (n)) | |
74 error ("vander: N must be a positive scalar integer"); | |
75 endif | |
76 | |
73 ## avoiding many ^s appears to be faster for n >= 100. | 77 ## avoiding many ^s appears to be faster for n >= 100. |
74 retval = zeros (length (c), n, class (c)); | 78 V = zeros (numel (c), n, class (c)); |
79 c = c(:); | |
75 d = 1; | 80 d = 1; |
76 c = c(:); | |
77 for i = n:-1:1 | 81 for i = n:-1:1 |
78 retval(:,i) = d; | 82 V(:,i) = d; |
79 d .*= c; | 83 d .*= c; |
80 endfor | 84 endfor |
81 | 85 |
82 endfunction | 86 endfunction |
83 | 87 |
93 %!assert (vander ([1, 2, 3]*i), [-1, i, 1; -4, 2i, 1; -9, 3i, 1]) | 97 %!assert (vander ([1, 2, 3]*i), [-1, i, 1; -4, 2i, 1; -9, 3i, 1]) |
94 | 98 |
95 %!assert (vander (2, 3), [4, 2, 1]) | 99 %!assert (vander (2, 3), [4, 2, 1]) |
96 %!assert (vander ([2, 3], 3), [4, 2, 1; 9, 3, 1]) | 100 %!assert (vander ([2, 3], 3), [4, 2, 1; 9, 3, 1]) |
97 | 101 |
102 ## Test input validation | |
98 %!error <Invalid call> vander () | 103 %!error <Invalid call> vander () |
99 %!error <polynomial C must be a vector> vander ([1, 2; 3, 4]) | 104 %!error <polynomial C must be a vector> vander ([1, 2; 3, 4]) |
105 %!error <N must be a positive scalar integer> vander (1, [1, 2]) |