This is a script file.
0001 classdef matRad_MinMaxMeanDose < DoseConstraints.matRad_DoseConstraint
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 properties (Constant)
0022 name = 'mean dose constraint';
0023 parameterNames = {'\mu_d^{min}', '\mu_d^{max}'};
0024
0025 parameterTypes = {'dose','dose'};
0026 end
0027
0028 properties
0029 parameters = {0,30};
0030 end
0031
0032 methods
0033 function obj = matRad_MinMaxMeanDose(minMeanDose,maxMeanDose)
0034
0035
0036 if nargin == 1 && isstruct(minMeanDose)
0037 initFromStruct = true;
0038 inputStruct = minMeanDose;
0039 else
0040 initFromStruct = false;
0041 inputStruct = [];
0042 end
0043
0044
0045 obj@DoseConstraints.matRad_DoseConstraint(inputStruct);
0046
0047
0048 if ~initFromStruct
0049
0050 if nargin == 2 && isscalar(maxMeanDose)
0051 obj.parameters{2} = maxMeanDose;
0052 end
0053
0054 if nargin >= 1 && isscalar(minMeanDose)
0055 obj.parameters{1} = minMeanDose;
0056 end
0057
0058 end
0059 end
0060
0061 function cu = upperBounds(obj,n)
0062 cu = obj.parameters{2};
0063 end
0064 function cl = lowerBounds(obj,n)
0065 cl = obj.parameters{1};
0066 end
0067
0068
0069
0070 function s = struct(obj)
0071 s = struct@DoseConstraints.matRad_DoseConstraint(obj);
0072
0073 end
0074
0075
0076
0077 function cDose = computeDoseConstraintFunction(obj,dose)
0078 cDose = mean(dose);
0079 end
0080
0081
0082 function cDoseJacob = computeDoseConstraintJacobian(obj,dose)
0083 cDoseJacob = ones(numel(dose),1)./numel(dose);
0084 end
0085 end
0086
0087 end
0088
0089