LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
getAvgNodeChainTable.m
1function [AvgChain,QTc,UTc,RTc,WTc,ATc,TTc] = getAvgNodeChainTable(self,Q,U,R,T)
2% [AVGCHAIN,QTC,UTC,RTC,WTC,ATC,TTC] = GETAVGCHAINNODETABLE(SELF,Q,U,R,T)
3
4% Copyright (c) 2012-2026, Imperial College London
5% All rights reserved.
6
7if GlobalConstants.DummyMode
8 [AvgChain, QTc, UTc, RTc, TTc, WTc] = deal(Table());
9 AvgChain = IndexedTable(AvgChain);
10 return;
11end
12
13sn = self.model.getStruct;
14I = sn.nnodes;
15C = sn.nchains;
16if nargin == 1
17 [Q,U,R,T] = getAvgHandles(self);
18end
19if nargin == 2 && iscell(Q)
20 if ~isempty(Q)
21 [Q, U, R, T] = deal(Q{:});
22 else
23 [Q, U, R, T] = getAvgHandles(self);
24 end
25end
26
27[QNc,UNc,RNc,WNc,ANc,TNc] = self.getAvgNodeChain(Q,U,R,T);
28
29ChainObj = self.model.getChains();
30ChainName = cellfun(@(c) c.name,ChainObj,'UniformOutput',false);
31ChainClasses = cell(1,length(ChainName));
32for c=1:length(ChainName)
33 ChainClasses{c} = ChainObj{c}.classnames;
34end
35if isempty(QNc)
36 [AvgChain, QTc, UTc, RTc, TTc] = deal(Table());
37 AvgChain = IndexedTable(AvgChain);
38else
39 [Qval, Uval, Rval, Tval, Resval, Aval] = deal(zeros(I, C));
40 [Chain, JobClasses, Node] = deal(cell(C*I, 1));
41 for c = 1:sn.nchains
42 for ind = 1:I
43 idx = (ind-1)*C + c;
44 Chain{idx} = ChainName{c};
45 JobClasses{idx} = label(ChainClasses{c}(:));
46 Node{idx} = sn.nodenames{ind};
47 Qval(idx) = QNc(ind, c);
48 Uval(idx) = UNc(ind, c);
49 Rval(idx) = RNc(ind, c);
50 Aval(idx) = ANc(ind, c);
51 Tval(idx) = TNc(ind, c);
52 Resval(idx) = WNc(ind,c);
53 end
54 end
55 [Chain, Node] = deal(label(Chain), label(Node));
56 QTc = table(Node, Chain, JobClasses, Qval(:), 'VariableNames', {'Node', 'Chain', 'JobClasses', 'QLen'});
57 UTc = table(Node, Chain, JobClasses, Uval(:), 'VariableNames', {'Node', 'Chain', 'JobClasses', 'Util'});
58 RTc = table(Node, Chain, JobClasses, Rval(:), 'VariableNames', {'Node', 'Chain', 'JobClasses', 'RespT'});
59 WTc = table(Node, Chain, JobClasses, Resval(:), 'VariableNames', {'Node', 'Chain', 'JobClasses', 'ResidT'});
60 TTc = table(Node, Chain, JobClasses, Tval(:), 'VariableNames', {'Node', 'Chain', 'JobClasses', 'Tput'});
61 ATc = table(Node, Chain, JobClasses, Aval(:), 'VariableNames', {'Node', 'Chain', 'JobClasses', 'ArvR'});
62
63 AvgChain = table(Node, Chain, JobClasses, Qval(:), Uval(:), Rval(:), Resval(:), Aval(:), Tval(:), ...
64 'VariableNames', {'Node', 'Chain', 'JobClasses', 'QLen', 'Util', 'RespT', 'ResidT', 'ArvR', 'Tput'});
65 AvgChain = IndexedTable(AvgChain);
66end
67end