nikcleju@16
|
1 % Run GAP and save parameters and solutions as reference test data
|
nikcleju@16
|
2 % to check if other algorithms are correct
|
nikcleju@16
|
3
|
nikcleju@16
|
4 numA = 10;
|
nikcleju@16
|
5 numY = 100;
|
nikcleju@16
|
6
|
nikcleju@16
|
7 sizesA{1} = [50 100];
|
nikcleju@16
|
8 sizesA{2} = [20 25];
|
nikcleju@16
|
9 sizesA{3} = [10 120];
|
nikcleju@16
|
10 sizesA{4} = [15 100];
|
nikcleju@16
|
11 sizesA{5} = [70 100];
|
nikcleju@16
|
12 sizesA{6} = [80 100];
|
nikcleju@16
|
13 sizesA{7} = [90 100];
|
nikcleju@16
|
14 sizesA{8} = [99 100];
|
nikcleju@16
|
15 sizesA{9} = [100 100];
|
nikcleju@16
|
16 sizesA{10} = [250 400];
|
nikcleju@16
|
17 for i = 1:numA sizesA{i} = fliplr(sizesA{i}); end
|
nikcleju@16
|
18
|
nikcleju@16
|
19 sigmamin = [0.00001 0.01 0.2 0.3 0.4 0.0001 0.1 0.001 0.1 0.1];
|
nikcleju@16
|
20
|
nikcleju@16
|
21 for i = 1:numA
|
nikcleju@16
|
22 sz = sizesA{i};
|
nikcleju@16
|
23 cellA{i} = randn(sz);
|
nikcleju@16
|
24 m = round((0.2 + 0.6*rand)*sz(2));
|
nikcleju@16
|
25 cellM{i} = randn(m,sz(2));
|
nikcleju@16
|
26 cellY{i} = randn(m, numY);
|
nikcleju@16
|
27 cellXinit{i} = zeros(sz(2), numY);
|
nikcleju@16
|
28 for j = 1:numY
|
nikcleju@16
|
29 cellEps{i}(j) = rand / 100; % restrict from 0 to 1% of measurements
|
nikcleju@16
|
30 end
|
nikcleju@16
|
31 end
|
nikcleju@16
|
32 opt_num_iteration = 1000;
|
nikcleju@16
|
33 opt_greedy_level = 0.9;
|
nikcleju@16
|
34 opt_stopping_coefficient_size = 1e-4;
|
nikcleju@16
|
35 opt_l2solver = 'pseudoinverse';
|
nikcleju@16
|
36
|
nikcleju@16
|
37 %load GAPtestdata
|
nikcleju@16
|
38 tic
|
nikcleju@16
|
39 for i = 1:numA
|
nikcleju@16
|
40 for j = 1:numY
|
nikcleju@16
|
41 gapparams.num_iteration = opt_num_iteration;
|
nikcleju@16
|
42 gapparams.greedy_level = opt_greedy_level;
|
nikcleju@16
|
43 gapparams.stopping_coefficient_size = opt_stopping_coefficient_size;
|
nikcleju@16
|
44 gapparams.l2solver = opt_l2solver;
|
nikcleju@16
|
45 gapparams.noise_level = cellEps{i}(j);
|
nikcleju@16
|
46
|
nikcleju@16
|
47 cellXr{i}(:,j) = GAP(cellY{i}(:,j), cellM{i}, cellM{i}', cellA{i}, cellA{i}', gapparams, cellXinit{i}(:,j));
|
nikcleju@16
|
48 end
|
nikcleju@16
|
49 end
|
nikcleju@16
|
50 toc
|
nikcleju@16
|
51
|
nikcleju@16
|
52 save GAPtestdata |