是否可以根据列表生成随机数?

时间:2012-10-13 17:43:35

标签: matlab random matrix

A = [8 1 5; 1 4 2; 7 5 2];

Max = 5

B = randi(Max);

现在我有一部分代码生成一个随机数。我希望从数字列表中生成一个随机数,在这种情况下是第一行(8 1 5)中列出的数字。

还有另一个函数可以随机生成第一行中列出的一个数字并且符合randi条件,而不是使用Max吗?

2 个答案:

答案 0 :(得分:1)

根据您的指定,我建议如下:

A = [8 1 5; 1 4 2; 7 5 2];

% get a random number from row 1
index = randperm(length(A(1,:)));
number = A(1,index(1))

% get a randome number from row 1 that does not exceed Max
max = 5;
condition = find(A(1,:) <= max);
index = randperm(length(A(1,condition)));
number = A( 1, condition(index(1)))

希望这能提供一些想法,

答案 1 :(得分:0)

最简单的方法是使用arrayfun

B = arrayfun(@randi, A(1,:))