Since version 2008a, the Matlab m-language is extended to include some object orientation. This object-oriented programming style allows reuse, inheritance, encapsulation, and reference behavior.
Example
The following m-code is a generic abstract class for implementing classes which generate processes accessible in ThetaML.
classdef ThetaStepping < handle % abstract class which defines the required methods of a class % generating a stochastic process for usage in ThetaML with % Theta Suite % (c) 2011 Andreas J. Grau methods (Abstract) vars = GetModelVariables(ThetaStepping) Step(ThetaStepping, dt) end methods function SetValues(ThetaStepping, var, value) ThetaStepping.(var)=value; end function result = GetValues(ThetaStepping,str) result = ThetaStepping.(str); end end end
The object following class generates a Geometric Brownian Motion.
classdef GBM_Object < ThetaStepping % Definition of a class with generates a Geometric Brownian Motion properties (SetAccess = private) sigma; r; gbm; end methods (Static) function vars = GetModelVariables() % Returns the im- and exports of th process vars.gbm.comment='Stock price'; vars.gbm.Visibility='Export'; vars.gbm.IsState= true; vars.gbm.Size= 1; vars.sigma=struct('comment','vola','Visibility','Import'); vars.S0=struct('comment','S0','Visibility','Import'); vars.r=struct('comment','r','Visibility','Import'); end end methods function GBM_Object = GBM_Object(param) % Constructor if nargin>0 GBM_Object.sigma = param.sigma; GBM_Object.r = param.r; GBM_Object.gbm = param.S0*ones(param.NoOfScenarios,1); end end function Step(GBM_Object, dt) % Step is called for each Theta (time) step of size "dt" GBM_Object.gbm = GBM_Object.gbm .* exp((GBM_Object.r-0.5.*GBM_Object.sigma.*GBM_Object.sigma)*dt + GBM_Object.sigma.*sqrt(dt).*randn(size(GBM_Object.gbm))); end end end
This process can be accessed in ThetaML using a “call @matlab:GBM_Object”, e.g.
model testGBMObject export Sout call @matlab : GBM_Object export 0.05 to r export 0.4 to sigma export 100 to S0 import S from gbm Sout = S loop 10 Theta 1 Sout = S end end
My Homepage
It’s not that I want to duplicate your web site, but I truly like the style. Could you tell me which design are you utilizing? Or was it custom created? 758423