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 (omit NaN values
for FCR
nodes)
40 if isMATLABReleaseOlderThan(
"R2018b")
41 filterVal = nansum([QN(ind,k),UN(ind,k),RN(ind,k),TN(ind,k),AN(ind,k)]); %
#ok<NANSUM>
43 filterVal = sum([QN(ind,k),UN(ind,k),RN(ind,k),TN(ind,k),AN(ind,k)],
'omitnan');
47 inchain = sn.inchain{c};
48 JobClass{end+1,1} = sn.classnames{k};
49 Node{end+1,1} = sn.nodenames{ind};
50 Qval(end+1) = QN(ind,k);
51 Uval(end+1) = UN(ind,k);
52 Rval(end+1) = RN(ind,k);
53 Wval(end+1) = WN(ind,k);
54 Tval(end+1) = TN(ind,k);
55 Aval(end+1) = AN(ind,k);
60 JobClass = label(JobClass);
61 QLen = Qval(:); % we need to save first in a variable named like the column
62 QT = Table(Node,JobClass,QLen);
63 Util = Uval(:); % we need to save first in a variable named like the column
64 UT = Table(Node,JobClass,Util);
65 ResidT = Wval(:); % we need to save first in a variable named like the column
66 WT = Table(Node,JobClass,ResidT);
67 RespT = Rval(:); % we need to save first in a variable named like the column
68 RT = Table(Node,JobClass,RespT);
69 Tput = Tval(:); % we need to save first in a variable named like the column
70 TT = Table(Node,JobClass,Tput);
71 ArvR = Aval(:); % we need to save first in a variable named like the column
72 AT = Table(Node,JobClass,ArvR);
73 AvgTable = Table(Node,JobClass,QLen,Util,RespT,ResidT,ArvR,Tput);
74 AvgTable = IndexedTable(AvgTable);
76 [Qval, Uval, Rval, Tval, Aval, Wval] = deal(zeros(I, K));
82 inchain = sn.inchain{c};
83 JobClass{end+1,1} = sn.classnames{k};
84 Node{end+1,1} = sn.nodenames{ind};
85 Qval((ind-1)*K+k) = QN(ind,k);
86 Uval((ind-1)*K+k) = UN(ind,k);
87 Rval((ind-1)*K+k) = RN(ind,k);
88 Wval((ind-1)*K+k) = WN(ind,k);
89 Tval((ind-1)*K+k) = TN(ind,k);
90 Aval((ind-1)*K+k) = AN(ind,k);
94 JobClass = label(JobClass);
95 QLen = Qval(:); % we need to save first in a variable named like the column
96 QT = Table(Node,JobClass,QLen);
97 Util = Uval(:); % we need to save first in a variable named like the column
98 UT = Table(Node,JobClass,Util);
99 ResidT = Wval(:); % we need to save first in a variable named like the column
100 WT = Table(Node,JobClass,ResidT);
101 RespT = Rval(:); % we need to save first in a variable named like the column
102 RT = Table(Node,JobClass,RespT);
103 Tput = Tval(:); % we need to save first in a variable named like the column
104 TT = Table(Node,JobClass,Tput);
105 ArvR = Aval(:); % we need to save first in a variable named like the column
106 AT = Table(Node,JobClass,ArvR);
107 AvgTable = Table(Node,JobClass,QLen,Util,RespT,ArvR,Tput);
108 AvgTable = IndexedTable(AvgTable);