在数组中设置距离相等的值(尽可能)



我需要在 n 个 elemetns 的向量中设置 m 值为 1,并且它们之间的距离应该相似。

例如,假设一个包含 25 个元素的向量,我们希望将 7 个元素设置为 1。这些元素之间的距离应尽可能相同或相似。对于此示例,它可能如下所示:0-0-1-0-0-1-0-0-0-1-0-0-1-0-0-0-1-0-0-1-0-0-0-1-0有时需要有 2 个零,有时需要 3 个零。

找不到任何可以解决我的问题的东西,而且我没有想法,有人可以帮助我吗?

谢谢!

您的要求略有模糊,但按照以下思路应该可以解决问题:

% parameters
n = 25;
m = 7;
% initialize row vector
v = zeros(1, n);
% create index of elements to set equal to 1. Include first and last
% elements, plus equally spaced elements in between.
I = 1 : (n-1)/(m-1) : n;
I = round(I);
% check that this algorithm works for these values of n and m. For
% example, m must be <= n
if length(unique(I)) ~= m
    error('Does not work for these values of n and m');
end
% set the appropriate vector elements to 1
v(I) = 1;

最新更新