1function [AvgTable,QT,UT,
RT,WT,AT,TT] = getAvgNodeTable(self,Q,U,R,T,A,W,keepDisabled)
2% [AVGTABLE,QT,UT,
RT,WT,AT,TT] = GETNODEAVGTABLE(SELF,Q,U,R,T,A,W,KEEPDISABLED)
3% Return table of average node metrics
5% Copyright (c) 2012-2026, Imperial College London
8if nargin<8 %~exist(
'keepDisabled',
'var')
12if GlobalConstants.DummyMode
13 [AvgTable, QT, UT,
RT, TT, WT, AT] = deal(Table());
14 AvgTable = IndexedTable(AvgTable);
18sn = self.model.getStruct;
19I = sn.nnodes + sn.nregions; % Include FCR virtual
nodes
23 [Q,U,R,T,A,W] = getAvgHandles(self);
24elseif isempty(Q) && isempty(U) && isempty(R) && isempty(T) && isempty(A) && isempty(W)
25 [Q,U,R,T,A,W] = getAvgHandles(self);
28[QN,UN,RN,TN,AN,WN] = self.getAvgNode(Q,U,R,T,A,W);
31 [AvgTable, QT, UT,
RT, WT, TT, AT] = deal(Table());
32 AvgTable = IndexedTable(AvgTable);
34 [Qval, Uval, Rval, Tval, Aval, Wval] = deal([]);
39 % Check
if any metric
is non-zero (use nansum to handle NaN values
for FCR
nodes)
40 filterVal = nansum([QN(ind,k),UN(ind,k),RN(ind,k),TN(ind,k),AN(ind,k)]);
43 inchain = sn.inchain{c};
44 JobClass{end+1,1} = sn.classnames{k};
45 Node{end+1,1} = sn.nodenames{ind};
46 Qval(end+1) = QN(ind,k);
47 Uval(end+1) = UN(ind,k);
48 Rval(end+1) = RN(ind,k);
49 Wval(end+1) = WN(ind,k);
50 Tval(end+1) = TN(ind,k);
51 Aval(end+1) = AN(ind,k);
56 JobClass = label(JobClass);
57 QLen = Qval(:); % we need to save first in a variable named like the column
58 QT = Table(Node,JobClass,QLen);
59 Util = Uval(:); % we need to save first in a variable named like the column
60 UT = Table(Node,JobClass,Util);
61 ResidT = Wval(:); % we need to save first in a variable named like the column
62 WT = Table(Node,JobClass,ResidT);
63 RespT = Rval(:); % we need to save first in a variable named like the column
64 RT = Table(Node,JobClass,RespT);
65 Tput = Tval(:); % we need to save first in a variable named like the column
66 TT = Table(Node,JobClass,Tput);
67 ArvR = Aval(:); % we need to save first in a variable named like the column
68 AT = Table(Node,JobClass,ArvR);
69 AvgTable = Table(Node,JobClass,QLen,Util,RespT,ResidT,ArvR,Tput);
70 AvgTable = IndexedTable(AvgTable);
72 [Qval, Uval, Rval, Tval, Aval, Wval] = deal(zeros(I, K));
78 inchain = sn.inchain{c};
79 JobClass{end+1,1} = sn.classnames{k};
80 Node{end+1,1} = sn.nodenames{ind};
81 Qval((ind-1)*K+k) = QN(ind,k);
82 Uval((ind-1)*K+k) = UN(ind,k);
83 Rval((ind-1)*K+k) = RN(ind,k);
84 Wval((ind-1)*K+k) = WN(ind,k);
85 Tval((ind-1)*K+k) = TN(ind,k);
86 Aval((ind-1)*K+k) = AN(ind,k);
90 JobClass = label(JobClass);
91 QLen = Qval(:); % we need to save first in a variable named like the column
92 QT = Table(Node,JobClass,QLen);
93 Util = Uval(:); % we need to save first in a variable named like the column
94 UT = Table(Node,JobClass,Util);
95 ResidT = Wval(:); % we need to save first in a variable named like the column
96 WT = Table(Node,JobClass,ResidT);
97 RespT = Rval(:); % we need to save first in a variable named like the column
98 RT = Table(Node,JobClass,RespT);
99 Tput = Tval(:); % we need to save first in a variable named like the column
100 TT = Table(Node,JobClass,Tput);
101 ArvR = Aval(:); % we need to save first in a variable named like the column
102 AT = Table(Node,JobClass,ArvR);
103 AvgTable = Table(Node,JobClass,QLen,Util,RespT,ArvR,Tput);
104 AvgTable = IndexedTable(AvgTable);