【问题标题】:Matlab: generate a controlled random vectorMatlab:生成受控随机向量
【发布时间】:2014-06-29 17:52:58
【问题描述】:

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

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]

【问题讨论】:

    标签: matlab random vector


    【解决方案1】:

    使用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
    

    这样就可以了。
    注意,代码是我乱写的,可能需要修改一下。

    【讨论】:

    • 好的,代码生成两个矩阵的 randNumArray 单元格。 randNumArray = [1x7 double] [1x6 double] 我怎样才能只获得一个向量,在这种情况下,作为一个单元格排序?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    相关资源
    最近更新 更多