rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
lin_ds_reduced_data_subset.m
1 function reduced_data = lin_ds_reduced_data_subset(model,reduced_data)
2 %function reduced_data = lin_ds_reduced_data_subset(model,reduced_data)
3 %
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.
8 
9 % Bernard Haasdonk 2.4.2009
10 
11 %model.affine_decomp_mode = 'components';
12 
13 % reduced system matrices:
14 %model.t = 0;
15 
16 if model.N== reduced_data.N
17  return;
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
21  N = model.N;
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);
39  end;
40  reduced_data.N = model.N;
41 % keyboard;
42 end;
43 
44 
45 
46 
47 
48 
49 
50