在 matlab 中混合列

Mixing columns in matlab

我有一个 2x100 矩阵。它包含来自 2 个不同 class 的 100 个元素。所以每个元素都由值本身和带有 class 的标签组成(1 或 2)。我想将这些数据混合到另一个 2x100 矩阵中,其中的值仍然与其标签相关。

一个 2x5 矩阵的例子是:

 A=[1 2 3 4 5;
    1 2 2 2 1]

混合后:

A=[2 3 5 1 4;
   2 2 1 1 2]

我该怎么做?谢谢!

您可以索引整个列(并使用 randperm 随机更改顺序)

Amix = A( :, randperm(size(A,2)) );

查看示例 at ideone