c0 and x are scalars, c - vector, and p - scalar. If c is [ ], then p = c0. If c is a scalar, then p = c0 + c*x . Else, p =
    6 views (last 30 days)
  
       Show older comments
    
    Subramanian Mahadevan
 on 9 Nov 2016
  
    
    
    
    
    Answered: Govind Mishra
 on 14 Mar 2018
            function [p] = poly_val(c0,c,x)
N = length(c);
n=1:1:N;
if (N<=1)
if(isempty(c))
    p=c0;
else
    p= c0+(c*x);
end
end
if(N>1)
    p = c0+(sum(c(n).*(power(x,n)))); 
end
end
2 Comments
Accepted Answer
  Thorsten
      
      
 on 14 Nov 2016
        function y = mypolyval(c0,c,x)
if isempty(c)
  y = c0;
else
  y = c0 + power(x, 1:numel(c))*c(:);
end
The case y = c0 + c*x is already covered by the else. And you can use matrix multiplication of a row and a column vector r*c instead of sum(r.*c').
2 Comments
  Vijayramanathan B.tech-EIE-118006077
 on 11 Feb 2018
				This is the easiest method! Well done Mr.Thorsten
 *Usage of c(:) is appreciated! :)*
  Raunil Raj
 on 6 Mar 2018
				really! I went through the same problem. I however don't understand as to how c(:) can convert any row vector or column vector into a column vector. Can someone please explain?
More Answers (6)
  Jorge Briceño
      
 on 29 Jan 2018
        Here is my solution:
function p = poly_val(c0,c,x)
format long
n=(1:1:length(c));
c=c(:)' & This part converts any array/matrix into a colunm vector and transpose...
% it afterwards, since you are working with row vector properties.
if isempty(c)
  p=c0;
elseif isscalar(c)
  p=c0+sum(c.*x);
else
  p=c0+sum((c.*(x.^n)));
end
end
0 Comments
  Gabir Yusuf
 on 8 Aug 2017
        if true
  function  p = poly_val(c0,c,x)
n=length(c);
if sum(size(c))==0
   p = c0;
elseif isscalar(c)
   p = c0 + c*x;
else
  y=1:n;
  z=x.^y;
  if size(c)==[1 n]
      p=sum(c.*z)+c0;
  else
  c=c';
  p=sum(c.*z)+c0;
  end
end
end
1 Comment
  Anshuman Panda
 on 19 Aug 2017
        function p=poly_val(c0,c,x) a=length(c); if a==0 p=c0; else if a==1 p=c0+c*x; else p=c0 + power(x , 1:a)*c(:); end end end
0 Comments
  Darío Pascual
 on 12 Mar 2018
        function p=poly_val(c0,c,x)
    N = length(c);
    n=1:1:N;
    d=size(c);
    if(isempty(c))
            p=c0;
    end
    if N==1
            p= c0+(c*x);
    end 
    if N>1
        if d(1)==1
            p = c0+(sum(c(n).*(power(x,n))));
        else 
            c=c'
            p = c0+(sum(c(n).*(power(x,n))));
          end
      end
0 Comments
  Govind Mishra
 on 14 Mar 2018
        function [p] = poly_val(c0,c,x)
if(iscolumn(c)) c=transpose(c); end
N = length(c); n=1:1:N; if (N<=1) if(isempty(c)) p=c0; else p= c0+(c*x); end end if(N>1) p = c0+(sum(c(n).*(power(x,n)))); end end
0 Comments
See Also
Categories
				Find more on Dimensionality Reduction and Feature Extraction in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!








