【问题标题】:How to randomly separate data in MATLAB如何在MATLAB中随机分离数据
【发布时间】:2014-06-17 11:13:32
【问题描述】:

假设我们有一个存储数据的数组,

data=[1 2 3 4 5 6 7 8 9 10;
      10 9 8 7 6 5 4 3 2 1];

然后我想将数据随机分成两个数组,一个包含3列数据,另一个包含7列,我想到的是使用randperm函数,

index = randperm(10,3);

然后

data1 = data(:,index);

我的问题是如何表示包含原始数据集的其他剩余 7 列的其他数据集?谢谢。

【问题讨论】:

  • 你可以改组数组,然后对前 3 个和后 7 个进行子集化吗?
  • 是的,谢谢你的回答,对我有意义。
  • 另外,您可以使用ind1 = randsample(10,3)随机生成三个列索引,然后ind2 = setdiff(1:10,ind1)是其他列索引

标签: arrays matlab random


【解决方案1】:

你可以这样做:

index = randperm(10);
data1 = data(:,index(1:3));
data2 = data(:,index(4:10));

【讨论】:

    【解决方案2】:

    一种替代解决方案,根据具体情况可能感觉更直观。

    index = randperm(10,3);
    data1 = data(:,index);
    data(:,index) = [];
    

    请注意,当您尝试从一个巨大的(稀疏)矩阵中提取一些值时,这尤其吸引人。

    【讨论】:

      猜你喜欢
      • 2011-05-20
      • 2012-10-27
      • 2017-04-17
      • 2014-02-08
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      相关资源
      最近更新 更多