1 function reduced_data = lin_ds_reduced_data_subset(model,reduced_data)
2 %
function reduced_data = lin_ds_reduced_data_subset(model,reduced_data)
4 %
function extracting reduced data subset
for lin_ds reduced
5 % simulation. The field model.N is the desired
new dimension of the
6 % reduced data and the corresponding submatrices/vectors, etc. of
7 % reduced_data are extracted.
9 % Bernard Haasdonk 2.4.2009
11 %model.affine_decomp_mode =
'components';
13 % reduced system matrices:
16 if model.N== reduced_data.N
18 elseif model.N>reduced_data.N
19 error(
'desired dimensionality N is not covered by online data!!');
20 else % requested N is smaller => extract subparts
22 reduced_data.x0r = subblock_sequence(reduced_data.x0r,1:N);
23 reduced_data.Ar = subblock_sequence(reduced_data.Ar,1:N,1:N);
24 input_dim = size(reduced_data.Br{1},2);
25 reduced_data.Br = subblock_sequence(reduced_data.Br,1:N,1:input_dim);
26 output_dim = size(reduced_data.Cr{1},1);
27 reduced_data.Cr = subblock_sequence(reduced_data.Cr,1:output_dim,1:N);
28 if model.enable_error_estimator
29 reduced_data.M1 = subblock_sequence(reduced_data.M1,1:N,1:N);
30 % reduced_data.M2 = reduced_data.M2; % input_dim does not change
31 reduced_data.M3 = reduced_data.M3(1:N,1:N);
32 reduced_data.M4 = subblock_sequence(reduced_data.M4,1:input_dim,1:N);
33 reduced_data.M5 = subblock_sequence(reduced_data.M5,1:N,1:N);
34 reduced_data.M6 = subblock_sequence(reduced_data.M6,1:N,1:input_dim);
35 %reduced_data.m00 = reduced_data.m00; % remains unchanged
36 reduced_data.VtGx0 = subblock_sequence(reduced_data.VtGx0,1:N);
37 reduced_data.Wtx0 = subblock_sequence(reduced_data.Wtx0,1:N);
38 reduced_data.VtGV = reduced_data.VtGV(1:N,1:N);
40 reduced_data.N = model.N;