How to implement derived function?

1 次查看(过去 30 天)
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

采纳的回答

per isakson
per isakson 2014-4-7
编辑:per isakson 2014-4-7
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 个)

类别

Help CenterFile Exchange 中查找有关 Software Development Tools 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by