LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
getAvgOrbitTable.m
1function OrbitTable = getAvgOrbitTable(self)
2% ORBITTABLE = GETAVGORBITTABLE()
3%
4% Table of the mean orbit length of every retrial station-class pair, with the
5% station population and the in-service population it decomposes into.
6%
7% Reported as a separate table rather than as an extra column of getAvgTable so
8% that the average table keeps its shape for models without retrials.
9%
10% See also NetworkSolver.getAvgOrbit, Queue.setOrbit
11%
12% Copyright (c) 2012-2026, Imperial College London
13% All rights reserved.
14
15ON = self.getAvgOrbit();
16[QN,~,~,TN] = self.getAvg();
17sn = self.model.getStruct();
18
19Station = {};
20JobClass = {};
21QLen = [];
22InService = [];
23Orbit = [];
24for ist = 1:size(ON,1)
25 for r = 1:size(ON,2)
26 if size(sn.retrialProc,1) < ist || size(sn.retrialProc,2) < r ...
27 || isempty(sn.retrialProc{ist,r})
28 continue
29 end
30 Station{end+1,1} = sn.nodenames{sn.stationToNode(ist)}; %#ok<AGROW>
31 JobClass{end+1,1} = sn.classnames{r}; %#ok<AGROW>
32 QLen(end+1,1) = QN(ist,r); %#ok<AGROW>
33 rate_ir = sn.rates(ist,r);
34 if isfinite(rate_ir) && rate_ir > 0
35 InService(end+1,1) = TN(ist,r) / rate_ir; %#ok<AGROW>
36 else
37 InService(end+1,1) = 0; %#ok<AGROW>
38 end
39 Orbit(end+1,1) = ON(ist,r); %#ok<AGROW>
40 end
41end
42
43OrbitTable = Table(Station, JobClass, QLen, InService, Orbit);
44OrbitTable = IndexedTable(OrbitTable);
45end