2014-06-29 51 views
0

我试图产生整数的具有以下caractetistics随机向量一个控制随机向量:Matlab的:产生

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 

我会生成不同数量的beetwen每个间隔值和每个间隔必须仅具有独特的价值。 我以为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] 

回答

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 

这将做的工作。
注意,我把代码写在脑海里,可能需要一些修改。

+0

好的,代码生成两个矩阵的randNumArray单元格。 randNumArray = [1x7 double] [1x6 double]在这种情况下,如何才能获得一个向量作为单元格排序?谢谢 – Mixo

+0

好吧,我用sort(cell2mat(randNumArray))解决了; – Mixo