1

认为

A = [1 2 3 5 7 9
     6 5 0 3 2 3]

我想随机化矩阵列位置的位置;像这样给B

B = [3 9 1 7 2 5
     0 3 6 2 5 3]

我该怎么做这个 Matlab?

4

3 回答 3

1

尝试

B = A(randperm(length(A)))

有关说明,请参阅文档。

于 2012-10-01T07:07:20.493 回答
0

您将希望使用该randperm函数生成列索引的随机排列(从 1 到 中的列数A),然后您可以使用以下方法对其进行索引A

B = A(:, randperm(size(A, 2)));
于 2017-05-03T16:20:50.887 回答
0

现在代码格式正确,很明显 OP 希望保留列,尽管randperm仍然是 HPM 的答案给出的最简单的选项。

idx = randperm(size(A,2)); % Create list of integers 1:n, in random order, 
                           % where n = num of columns

B = A(:, idx);             % Shuffles columns about, on all rows, to indixes in idx
于 2017-05-03T16:22:25.303 回答