From c877d4871fea3826afc192bfb5efe0b42b53b130 Mon Sep 17 00:00:00 2001 From: Jan Klemkow Date: Sat, 12 May 2012 11:03:34 +0200 Subject: opt_pred: Split opt_pred in opt_idx and opt_pred. So you can use the idx of opt_idx for other predictions. --- opt_idx.m | 10 ++++++++++ opt_pred.m | 11 ++--------- run_tests.m | 3 ++- 3 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 opt_idx.m diff --git a/opt_idx.m b/opt_idx.m new file mode 100644 index 0000000..76864c8 --- /dev/null +++ b/opt_idx.m @@ -0,0 +1,10 @@ +function idx = opt_idx(real_data, pred_list) + + err_list = zeros(size(pred_list, 2), size(real_data, 2)); + + for i = 1:size(pred_list, 2) + err_list(i,:) = sum(abs(real_data - pred_list{i})); + end + + [min_err, idx] = min(err_list); +end diff --git a/opt_pred.m b/opt_pred.m index 458479e..6204c29 100644 --- a/opt_pred.m +++ b/opt_pred.m @@ -1,13 +1,6 @@ -function pred = opt_pred(real_data, pred_list) +function pred = opt_pred(idx, pred_list) - err_list = zeros(size(pred_list, 2), size(real_data, 2)); - - for i = 1:size(pred_list, 2) - err_list(i,:) = sum(abs(real_data - pred_list{i})); - end - - [min_err, idx] = min(err_list); - pred = zeros(size(real_data)); + pred = zeros(size(pred_list{1})); for i = 1:size(idx, 2) pred(:,i) = pred_list{idx(i)}(:,i); diff --git a/run_tests.m b/run_tests.m index 12306a4..87b16e7 100644 --- a/run_tests.m +++ b/run_tests.m @@ -30,7 +30,8 @@ for i = 1:num_methods [qerr(i), terr(i), err(i, :)] = calc_error(pred_methods(i).name, real_data, pred_list{i}); end -opt_data = opt_pred(real_data, pred_list); +method_idx = opt_idx(real_data, pred_list); +opt_data = opt_pred(method_idx, pred_list); [qerr(end+1), terr(end+1), opt_err] = calc_error('optimize', real_data, opt_data); %bar(qerr); -- cgit