Files
2024-07-22 21:17:57 +08:00

29 lines
586 B
Matlab
Executable File

function [Lambda, Lambda_C, x] = get_sparse_vector(N, M, Amp, extend_target)
x = zeros(N * M, 1);
if nargin < 4
extend_target = true;
end
% Support Set
if length(x) > 2 * M && extend_target
Lambda = M + 1:2 * M;
elseif length(x) < 2 * M && extend_target
Lambda = 1:M;
else
Lambda = 2;
end
if length(Amp) == 1
x(Lambda) = Amp;
elseif length(Amp) <= max(Lambda)
x(Lambda) = Amp(Lambda);
else
% Warning
x(Lambda) = Amp(end);
end
Lambda_C = setdiff(1:N*M, Lambda);
end