如何从矩阵中为每个行选择不同的操作

时间:2016-05-11 07:01:45

标签: matlab random-sample

我有一个序列

A = 1:5

然后我通过

进行随机排列
B = perms(A)
C = B(randperm(size(B,1)), :)

然后我随机抽取了5序列的样本,如下所示

sample = C(1:5,1:4)

然后我从样本中随机抽取一个序列如下

randomRow = sample(randi(size(sample,1)),:)

我使用上面的随机行进行操作。现在我被困在如何从样本中选择另一行并对其进行相同的操作,直到我对样本中的所有行进行操作,并且一旦处理完就没有从样本重复每一行。

2 个答案:

答案 0 :(得分:4)

您可以使用以下代码:

For i=randperm(size(sample,1))
    Rand_row=sample(i,:)
    %// operate on Rand_row
End

答案 1 :(得分:3)

为什么不使用先前用randperm使用的相同技巧来混淆sample的行,然后只是迭代它们?

sample_shuffled = sample(randperm(5),:)
for s = 1:5
    randomRow = sample_shuffled(s,:)
    %// Operate on randomRow
end