classdef ProbDistUnivParam < ProbDistParametric
%ProbDistUnivParam Univariate parametric probability distribution.
% A ProbDistUnivParam object represents a univariate parametric probability % distribution. You can create this object by using the constructor and % supplying parameter values, or by using the FITDIST function to fit the % distribution to data.
%
% PD = ProbDistUnivParam(DISTNAME,PARAMS) creates an object PD defining a % probability distribution named DISTNAME with parameters PARAMS.
%
% PD = FITDIST(X,DISTNAME) creates an object PD defining a probability % distribution named DISTNAME, with parameters estimated from the data in % the vector X.
%
% ProbDistUnivParam properties: % DistName - name of the distribution % InputData - structure containing data used to fit the distribution % NLogL - negative log likelihood for fitted data % NumParams - number of parameters % ParamNames - cell array of NumParams parameter names % Params - array of NumParams parameter values % ParamIsFixed - logical vector indicating which parameters are % fixed rather than estimated % ParamDescription - cell array of NumParams strings describing % the parameters % ParamCov - covariance matrix of parameter values % Support - structure describing the support of the distribution
%
% Parameter values are also provided as properties. For example, if % PD represents the normal distribution, then PD.mu and PD.sigma are % properties that give the values of the mu and sigma parameters.
%
% ProbDistUnivParam methods: % ProbDistUnivParam - constructor % cdf - Cumulative distribution function % icdf - Inverse cumulative distribution function % iqr - Interquartile range % mean - Mean % median - Median % paramci - Confidence intervals for the parameters % pdf - Probability density function % random - Random number generation % std - Standard deviation % var - Variance
%
% See also PROBDIST, PROBDISTPARAMETRIC, FITDIST.
% Copyright 2008-2009 The MathWorks, Inc. % $Revision: 1.1.6.4 $ $Date: 2009/01/23 22:30:15 $
properties(GetAccess='protected', SetAccess='protected')
icdffunc = []; % function y=icdffunc(p,param1,param2,...) end
methods function pd = ProbDistUnivParam(distname,params)
%ProbDistUnivParam Univariate parametric probability distribution constructor.
% PD = ProbDistUnivParam(DISTNAME,PARAMS) creates an object PD defining a % probability distribution named DISTNAME with parameters specified by % the numeric vector PARAMS. DISTNAME can be any of the following: % % 'beta' Beta % 'binomial' Binomial % 'birnbaumsaunders' Birnbaum-Saunders % 'exponential' Exponential % 'extreme value' or 'ev' Extreme value % 'gamma' Gamma % 'generalized extreme value' 'gev' Generalized extreme value % 'generalized pareto' or 'gp' Generalized Pareto % 'inversegaussian' Inverse Gaussian % 'logistic' Logistic % 'loglogistic' Log-logistic % 'lognormal' Lognormal % 'nakagami' Nakagami % 'negative binomial' or 'nbin' Negative binomial % 'normal' Normal % 'poisson' Poisson % 'rayleigh' Rayleigh % 'rician' Rician % 'tlocationscale' t location-scale % 'weibull' or 'wbl' Weibull
%
% See also PROBDISTUNIVPARAM, FITDIST.
if nargin<2 error('stats:ProbDistUnivParam:TooFewInputs',...
'DISTNAME and PARAMS inputs are required.') end
% Check distribution name [emsg,distname,spec] = checkdistname(distname);
if ~isempty(emsg) error('stats:ProbDistUnivParam:BadDistName',emsg);
end
pd.DistName = distname;
% Check parameters
emsg = checkparams(spec,params);
if ~isempty(emsg) error('stats:ProbDistUnivParam:BadParams',emsg);
end
params = params(:)';
pd.cdffunc = spec.cdffunc;
pd.icdffunc = spec.invfunc;
pd.statfunc = spec.statfunc;
pd.pdffunc = spec.pdffunc;
ifisfield(spec,'randfunc')
pd.randfunc = spec.randfunc;
end ifisfield(spec,'cifunc')
pd.cifunc = spec.cifunc;
end end %constructor
function b = properties(pd)
%PROPERTIESProperties of a ProbDistUnivParam opject
% P = PROPERTIES(PD) returns a cell array P of the names of the % properties of the probability distribution object PD.
b = [properties('ProbDistUnivParam'); pd.ParamNames(:)];
end end
So wie ich das sehe, ist da kein Property privat. Ich habe auch schon beide Dateien in das Deployment Projekt direkt integiert. Das ergab eine kurze Recherche. Das löst das Problem leider auch nicht. Ich denke, dass die Klassendefinitionen fehlerhaft sind.
ja, die GUI funktioniert im "normalen" Betrieb. Ich habe nun sehr viele Varianten ausprobiert, um den Fehler zu beheben. Ich habe fast den ganzen Tag daran gesessen. Daher war mein Frust so groß, dass ich eine eigene histfit-Funktion geschrieben habe. Diese arbeitet absolut zufriedenstellend. Daher werde ich der Sache hier nicht weiter nachgehen.
Mein Projekt ist einfach zu komplex, als dass ich hier die entsprechenden Codebereiche angeben könnte.
Man kann jedoch ein simples Beispiel selbst erzeugen.
ich habe es gerade mal mit 2011b probiert, und dort läuft es problemlos.
Bei Gelegenheit werde ich es auch mal mit 2009b probieren um zu sehen, ob ich das reproduzieren kann.
Falls ja, dann wird es ein Problem sein, das inzwischen behoben ist. Falls nein, könnte es ein konfigurationsspezifisches Problem sein. Das müsste man dann genauer untersuchen.
Ok, ich bin gespannt, ob du den Fehler mit 2009b reproduzieren kannst. Ich gehe allerdings von einer falschen Klassendefinition in der von mir verwendeten Version aus.
Das hat zur Folge, dass die (an sich korrekt implementierte) statische Methode fit der Klasse ProbDistUnivParam durch MATLAB Compiler nicht korrekt aufgelöst wird.
Die aufgezeigte Möglichkeit würde ich hier so umsetzen: das komplette Klassenverzeichnis in ein Verzeichnis kopieren, und dieses auf dem Suchpfad höher setzen. Dort wie im Bug Report beschrieben die Methode fit in das Klassendefinitionsfile reinschieben.
Die schönere Möglichkeit wäre natürlich das Upgrade auf eine neuere MATLAB-Version.
danke für deine Bemühungen. Jetzt bin ich doch versucht, das nochmal an zufassen.
Mal schauen...
Grüße, Marc
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.