matlab 中如何在一个向量中随机抽取一个元素

如向量a=[2,4,6,8,10],现在要求从这5个元素中随机抽取一个,求程序

a(uint16(rand * (length(a) - 1) + 1))
其中:
rand 生成一个[0, 1] 之间的随机实数。
length(a) - 1 是a的元素个数减去1。
rand * (length(a) - 1) + 1把这个随机数变为 [1, a的元素个数] 之间的随机实数。
uint16(...)把这个实数转化为无符号16位整数,当然你用int16或者uint32等等也行,总之必须满足数组下标是整数类型的要求。
最后a(...)就是你题目要求得到的内容。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-12
a(unidrnd(5)) %unidrnd(N),随机产生一个最大值为N的正整数
第2个回答  2011-01-07
matlab貌似没有现成的函数
相似回答