29 lines
586 B
Matlab
Executable File
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
|