MATLAB Answers

Philipp
0

How to implement derived function?

Asked by Philipp
on 7 Apr 2014
Latest activity Edited by per isakson
on 7 Apr 2014
Hello, I have the following simple code. The abstract class DistributionBase declares a probability distribution, and the derived class UniformDistribution implements uniform distribution on [0,1]. The following code (from the command line) produces an error:
UDF = UniformDistribution (); d = UDF.distributionFunction(3); Error using UniformDistribution/distributionFunction Too many input arguments.
The code for the two classes is below.
Thanks in advance for help! Philipp
classdef (Abstract) DistributionBase methods (Abstract = true) d = density(theta) d = distributionFunction(theta) end end
...
classdef UniformDistribution < DistributionBase
methods
function d = density(theta)
if(theta < 0 || theta > 1)
d = 0;
return;
else
d = 1;
end
end
function d = distributionFunction(theta)
if(theta < 0)
d = 0;
return;
elseif(theta > 1)
d = 1;
return;
else
d = theta;
return;
end
end
end
end

  0 Comments

Sign in to comment.

1 Answer

Answer by per isakson
on 7 Apr 2014
Edited by per isakson
on 7 Apr 2014
 Accepted Answer

You missed obj in distributionFunction( obj, theta). Try
>> udf = UniformDistribution;
>> d = udf.distributionFunction(3)
d =
1
where
classdef UniformDistribution
methods
function d = density( obj, theta)
if(theta < 0 || theta > 1)
d = 0;
else
d = 1;
end
end
function d = distributionFunction( obj, theta)
if(theta < 0)
d = 0;
elseif(theta > 1)
d = 1;
else
d = theta;
end
end
end
end

  0 Comments

Sign in to comment.