MATLAB: Attempted to access f(0); index must be a positive integer or logical

positive integer

function [ w ] = trap_wfp610( n )
% Calculates the work done using numerical integration and the trapezoidal rule
% Detailed explanation goes here
h=(5*10^-2)/n;
a=0;
b=5*10^-2;
f=(5*(10^5)*a+10^5)*pi*(5*10^-2)^2
g=(5*(10^5)*b+10^5)*pi*(5*10^-2)^2
w=h/2*(f(a)+g(b))
end

Best Answer

You need to create these two lines as anonymous functions:
f = @(a) (5*(10^5)*a+10^5)*pi*(5*10^-2)^2
g = @(b) (5*(10^5)*b+10^5)*pi*(5*10^-2)^2
and you won’t get that error.
Related Question