Matlab:生成受控随机向量

时间:2014-06-29 17:52:59

标签: matlab random vector

我正在尝试生成具有以下特征的整数随机向量:

min(V) = my_min; max(v) = my_max;
If I suppose to divide the vector in some intervals, e.g.:
V = [my_min, v1, v2, v3,...,my_max];
first interval is my_min, v1;
second one interval is v1,v2
etc

我会在每个间隔生成不同数量的值,每个间隔必须只有唯一值。 我认为 randperm 但是我无法定义最小和最大间隔,例如V1 V2 例如,我会得到以下向量

my_min = 0;
my_max = 65;
V1 = 10;
V2 = 20;
V3 = 50;
V4 = 60;
V = [0 1,2,5 10, 13,14, 20,25,45,46,48,50,55,56,58, 60,61,62,65]

1 个答案:

答案 0 :(得分:0)

使用randperm即可,只需移动结果。

我会尝试编写代码:

nodeValues = [0, 10, 20];
numRandNumbers = [7, 6];

for ii = 2:length(nodeValues)
  randNumArray{ii - 1} = nodeValues(ii - 1) + randperm((nodeValues(ii) - nodeValues(ii - 1)), numRandNumbers(ii - 1));
end

这将完成工作 请注意,我在脑海中编写代码,可能需要进行一些修改。