home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
octa21fb.zip
/
octave
/
SCRIPTS.ZIP
/
scripts.fat
/
control
/
polyout.m
< prev
next >
Wrap
Text File
|
1999-12-24
|
2KB
|
79 lines
## Copyright (C) 1995,1998 Auburn University. All Rights Reserved.
##
## This file is part of Octave.
##
## Octave is free software; you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by the
## Free Software Foundation; either version 2, or (at your option) any
## later version.
##
## Octave is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
## for more details.
##
## You should have received a copy of the GNU General Public License
## along with Octave; see the file COPYING. If not, write to the Free
## Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
## -*- texinfo -*-
## @deftypefn {Function File } { @var{y} =} polyout ( @var{c}@{, @var{x}@})
## write formatted polynom
## @example
## c(x) = c(1) * x^n + ... + c(n) x + c(n+1)
## @end example
## to string @var{y} or to the screen (if @var{y} is omitted)
## @var{x} defaults to the string @code{"s"}
## @end deftypefn
## See also: polyval, polyvalm, poly, roots, conv, deconv, residue,
## filter, polyderv, polyintg
function y = polyout (c, x)
## Written by A. Scottedward Hodel (scotte@eng.auburn.edu) May 1995)
## Nov 1998: Correctly handles complex coefficients
if (nargin < 1 ) || (nargin > 2) || (nargout < 0 ) || (nargout > 1)
usage("[y = ] polyout(c,[x])");
endif
if (!is_vec(c))
error("polyout: first argument must be a vector");
endif
if (nargin == 1)
x = 's';
elseif( ! isstr(x) )
error("polyout: second argument must be a string");
endif
n = length(c);
if(n > 0)
n1 = n+1;
if( imag(c(1)) ) tmp = com2str(c(1))
else tmp = num2str(c(1)); endif
for ii=2:n
if(real(c(ii)) < 0) ns = ' - '; c(ii) = -c(ii);
else ns = ' + '; endif
if( imag(c(ii)) ) nstr = sprintf("(%s)",com2str(c(ii)) );
else nstr = num2str(c(ii)); endif
tmp = sprintf("%s*%s^%d%s%s",tmp,x,n1-ii,ns,nstr);
endfor
else
tmp = " ";
endif
if(nargout == 0)
disp(tmp)
else
y = tmp;
endif
endfunction