From 300282d55307c57b301a9de380fe60354fbf739b Mon Sep 17 00:00:00 2001 From: Ksyer <> Date: Tue, 23 Jul 2024 22:31:10 +0800 Subject: [PATCH] Update simulator --- wide vs narrow/single_point_test/simulator.m | 110 ++++++++++--------- 1 file changed, 58 insertions(+), 52 deletions(-) diff --git a/wide vs narrow/single_point_test/simulator.m b/wide vs narrow/single_point_test/simulator.m index ebaa973..2d3aab8 100644 --- a/wide vs narrow/single_point_test/simulator.m +++ b/wide vs narrow/single_point_test/simulator.m @@ -3,9 +3,9 @@ clc; clear; close all; trail_times = 250; method = "cVAMPro"; -Ns = [64, 128, 256, 512, 1024]; +Ns = [128, 256, 512, 1024]; Ms = [4, 8, 16, 32]; -sigma = 0.01; +sigma = 0.1; tau = 1e-6; iter_max = 100; epi = 0; @@ -18,11 +18,11 @@ H0_REE_maxs = zeros(length(Ns), length(Ms)); H1_REE_means = zeros(length(Ns), length(Ms)); H1_REE_maxs = zeros(length(Ns), length(Ms)); -figure; +% figure; for N_idx = 1: length(Ns) for M_idx = 1: length(Ms) - subplot(length(Ns), length(Ms), (N_idx - 1) * length(Ms) + M_idx); + subplot(length(Ms), length(Ns), N_idx + (M_idx - 1) * length(Ns)); FAR_N = Ns(N_idx); FAR_M = Ms(M_idx); @@ -33,7 +33,7 @@ for N_idx = 1: length(Ns) [Lambda, Lambda_C, x] = get_sparse_vector(FAR_N, FAR_M, betas_wide, true); % get lambda - signal_model_filename = "./Signal_Model/Signal_Model_" + string(FAR_N) + "_" + string(FAR_M) + ".mat"; + signal_model_filename = "./Signal_Model_05/Signal_Model_" + string(FAR_N) + "_" + string(FAR_M) + ".mat"; if exist(signal_model_filename, "file") load(signal_model_filename, "A", "C_n", "ref_lambda"); else @@ -68,7 +68,7 @@ for N_idx = 1: length(Ns) % train LASSO_lambda = ref_lambda; simulate_results_filename = ... - "./data5/" + ... + "./data_05/" + ... "FAR" + "_" + ... string(FAR_N) + "_" + ... string(FAR_M)+ "_" + ... @@ -99,23 +99,24 @@ for N_idx = 1: length(Ns) Lambda_distributes = zeros(2, length(Lambda) * trail_times); Lambda_C_distributes = zeros(2, length(Lambda_C) * trail_times); + adds = []; for t = 1:trail_times x_0_hat = squeeze(recovery_results(1, t, :)); x_1_hat = squeeze(recovery_results(2, t, :)) - x; if anynan(x_1_hat) continue; end + adds = [adds; x_1_hat]; - for i = 1: length(Lambda) + length(Lambda_C) - if ismember(i, Lambda_C) - Lambda_C_distributes(1, i1) = x_0_hat(i); - Lambda_C_distributes(2, i1) = x_1_hat(i); - i1 = i1 + 1; - elseif ismember(i, Lambda) - Lambda_distributes(1, i2) = x_0_hat(i); - Lambda_distributes(2, i2) = x_1_hat(i); - i2 = i2 + 1; - end + for i = 1: length(Lambda_C) + Lambda_C_distributes(1, i1) = x_0_hat(Lambda_C(i)); + Lambda_C_distributes(2, i1) = x_1_hat(Lambda_C(i)); + i1 = i1 + 1; + end + for i = 1: length(Lambda) + Lambda_distributes(1, i2) = x_0_hat(Lambda(i)); + Lambda_distributes(2, i2) = x_1_hat(Lambda(i)); + i2 = i2 + 1; end end real_H00 = real(Lambda_C_distributes(1, 1:i1-1)); @@ -123,14 +124,20 @@ for N_idx = 1: length(Ns) real_H10 = real(Lambda_C_distributes(2, 1:i1-1)); real_H11 = real(Lambda_distributes(2, 1:i2-1)); - % figure; - % subplot(2, 2, 1); histfit(real_H00); xlabel("x\_hat"); ylabel("times"); title("H_0 (not in support set)") - % subplot(2, 2, 2); histfit(real_H01); xlabel("x\_hat"); ylabel("times"); title("H_0 (in support set)") - % subplot(2, 2, 3); histfit(real_H10); xlabel("x\_hat"); ylabel("times"); title("H_1 (not in support set)") - % subplot(2, 2, 4); histfit(real_H11); xlabel("x\_hat"); ylabel("times"); title("H_1 (in support set)") - % sgtitle("N = " + string(FAR_N) + ", M = " + string(FAR_M)); + if 1 == 0 + figure; + subplot(2, 2, 1); histfit(real_H00); xlabel("x\_hat"); ylabel("times"); title("H_0 (not in support set)") + subplot(2, 2, 2); histfit(real_H01); xlabel("x\_hat"); ylabel("times"); title("H_0 (in support set)") + subplot(2, 2, 3); histfit(real_H10); xlabel("x\_hat"); ylabel("times"); title("H_1 (not in support set)") + subplot(2, 2, 4); histfit(real_H11); xlabel("x\_hat"); ylabel("times"); title("H_1 (in support set)") + sgtitle("N = " + string(FAR_N) + ", M = " + string(FAR_M)); + end - histfit(real_H11); xlabel("x\_hat"); ylabel("times"); title("N = " + string(FAR_N) + ", M = " + string(FAR_M)); + % histfit(real_H00); + % histfit(real_H01); + % histfit(real_H10); + histfit(real_H11); + xlabel("x\_hat"); ylabel("times"); title("N = " + string(FAR_N) + ", M = " + string(FAR_M)); means = [ ... mean(Lambda_C_distributes(1, 1:i1-1)), ... @@ -163,34 +170,33 @@ for N_idx = 1: length(Ns) fprintf("Test Complete \n\n"); end end -sgtitle("H_1 (in support set)"); - -figure; - -subplot(221); -h = heatmap(Ns, Ms, H0_REE_means'); -h.XLabel = "N"; -h.YLabel = "M"; -h.Title = "H_0, mean(REE)"; - -subplot(222); -h = heatmap(Ns, Ms, H0_REE_maxs'); -h.XLabel = "N"; -h.YLabel = "M"; -h.Title = "H_0, max(REE)"; - -subplot(223); -h = heatmap(Ns, Ms, H1_REE_means'); -h.XLabel = "N"; -h.YLabel = "M"; -h.Title = "H_1, mean(REE)"; - -subplot(224); -h = heatmap(Ns, Ms, H1_REE_maxs'); -h.XLabel = "N"; -h.YLabel = "M"; -h.Title = "H_1, max(REE)"; - - +% sgtitle("H_0 (not in support set)") +% sgtitle("H_0 (in support set)") +% sgtitle("H_1 (not in support set)") +sgtitle("H_1 (in support set)") +% figure; +% subplot(221); +% h = heatmap(Ns, Ms, H0_REE_means'); +% h.XLabel = "N"; +% h.YLabel = "M"; +% h.Title = "H_0, mean(REE)"; +% +% subplot(222); +% h = heatmap(Ns, Ms, H0_REE_maxs'); +% h.XLabel = "N"; +% h.YLabel = "M"; +% h.Title = "H_0, max(REE)"; +% +% subplot(223); +% h = heatmap(Ns, Ms, H1_REE_means'); +% h.XLabel = "N"; +% h.YLabel = "M"; +% h.Title = "H_1, mean(REE)"; +% +% subplot(224); +% h = heatmap(Ns, Ms, H1_REE_maxs'); +% h.XLabel = "N"; +% h.YLabel = "M"; +% h.Title = "H_1, max(REE)";