nikcleju@16: % Run GAP and save parameters and solutions as reference test data nikcleju@16: % to check if other algorithms are correct nikcleju@16: nikcleju@16: numA = 10; nikcleju@16: numY = 100; nikcleju@16: nikcleju@16: sizesA{1} = [50 100]; nikcleju@16: sizesA{2} = [20 25]; nikcleju@16: sizesA{3} = [10 120]; nikcleju@16: sizesA{4} = [15 100]; nikcleju@16: sizesA{5} = [70 100]; nikcleju@16: sizesA{6} = [80 100]; nikcleju@16: sizesA{7} = [90 100]; nikcleju@16: sizesA{8} = [99 100]; nikcleju@16: sizesA{9} = [100 100]; nikcleju@16: sizesA{10} = [250 400]; nikcleju@16: for i = 1:numA sizesA{i} = fliplr(sizesA{i}); end nikcleju@16: nikcleju@16: sigmamin = [0.00001 0.01 0.2 0.3 0.4 0.0001 0.1 0.001 0.1 0.1]; nikcleju@16: nikcleju@16: for i = 1:numA nikcleju@16: sz = sizesA{i}; nikcleju@16: cellA{i} = randn(sz); nikcleju@16: m = round((0.2 + 0.6*rand)*sz(2)); nikcleju@16: cellM{i} = randn(m,sz(2)); nikcleju@16: cellY{i} = randn(m, numY); nikcleju@16: cellXinit{i} = zeros(sz(2), numY); nikcleju@16: for j = 1:numY nikcleju@16: cellEps{i}(j) = rand / 100; % restrict from 0 to 1% of measurements nikcleju@16: end nikcleju@16: end nikcleju@16: opt_num_iteration = 1000; nikcleju@16: opt_greedy_level = 0.9; nikcleju@16: opt_stopping_coefficient_size = 1e-4; nikcleju@16: opt_l2solver = 'pseudoinverse'; nikcleju@16: nikcleju@16: %load GAPtestdata nikcleju@16: tic nikcleju@16: for i = 1:numA nikcleju@16: for j = 1:numY nikcleju@16: gapparams.num_iteration = opt_num_iteration; nikcleju@16: gapparams.greedy_level = opt_greedy_level; nikcleju@16: gapparams.stopping_coefficient_size = opt_stopping_coefficient_size; nikcleju@16: gapparams.l2solver = opt_l2solver; nikcleju@16: gapparams.noise_level = cellEps{i}(j); nikcleju@16: nikcleju@16: cellXr{i}(:,j) = GAP(cellY{i}(:,j), cellM{i}, cellM{i}', cellA{i}, cellA{i}', gapparams, cellXinit{i}(:,j)); nikcleju@16: end nikcleju@16: end nikcleju@16: toc nikcleju@16: nikcleju@16: save GAPtestdata