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

时间:2017-10-30 00:42:09

标签: matlab vector

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

例如,假设一个包含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个零。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

你的要求有点含糊不清,但这些内容应该可以解决问题:

% 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;