1function sampleResult = sample(self, node, numEvents)
2% SAMPLERESULT = SAMPLE(NODE, NUMEVENTS)
3% Generate a sample path (state trajectory)
for a stateful node via a fully
4% JSON-mediated transient LDES simulation. Mirrors
the Python-native sample().
6% Returns a
struct with fields:
7% .handle -
the node handle passed in
8% .t - (nTimePoints x 1) time vector
9% .state - (nTimePoints x nclasses) per-class queue-length trajectory
11% .nodeIndex - node index
12% .numEvents - number of events (horizon) used
14if nargin < 3 || isempty(numEvents)
18if GlobalConstants.DummyMode
23sn = self.model.getStruct;
30res = self.runTransientJson(numEvents);
32sampleResult = struct();
33sampleResult.handle = node;
34sampleResult.nodeIndex = nodeIdx;
35sampleResult.isaggregate = false;
36sampleResult.numEvents = numEvents;
38if isempty(res.t) || isempty(res.QNt)
40 sampleResult.state = [];
44isf = sn.nodeToStateful(nodeIdx);
48if isf >= 1 && isf <= numel(res.QNt)
49 classCells = res.QNt{isf};
50 for k = 1:min(R, numel(classCells))
53 n = min(nt, size(cd, 1));
54 state(1:n, k) = cd(1:n, 1);
59sampleResult.t = res.t;
60sampleResult.state = state;