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 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
采纳的回答
  Thorsten
      
      
 2016-11-14
        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 个评论
  Vijayramanathan B.tech-EIE-118006077
 2018-2-11
				This is the easiest method! Well done Mr.Thorsten
 *Usage of c(:) is appreciated! :)*
  Raunil Raj
 2018-3-6
				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?
更多回答(6 个)
  Jorge Briceño
      
 2018-1-29
        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 个评论
  Gabir Yusuf
 2017-8-8
        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
  Anshuman Panda
 2017-8-19
        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 个评论
  Darío Pascual
 2018-3-12
        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 个评论
  Govind Mishra
 2018-3-14
        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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!









