迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > MATLAB >

在 MATLAB 中从带有数据集的矩阵或数组中选择随机样本的方法

作者:迹忆客 最近更新:2023/05/09 浏览次数:

我们将研究使用 MATLAB 的不同命令从任何数据集、数组或矩阵中选择随机样本的不同方法。

为了清除你的概念并让你全面了解如何获取随机样本,我们将通过提供代码示例来解释诸如 Randnrandsampledatasample 之类的函数,以从你的数据集中提取随机样本并进行替换。因为没有替换/替换以及显示你的输出外观的片段。

让我们假设我们有一个包含 50,000 行数据集的矩阵。我们想从我们的矩阵中选择一个包含 50 个实体的随机样本。我们可以使用不止一种随机抽样方法来执行此任务。在开始列出这些方法之前,请记住,随机样本/数据/数据集是从数据集的矩阵中随机选择的一些数据。为了消除偏见和其他不希望的可能影响,我们使用随机抽样。但我们必须记住,它并不像我们看起来那么简单。从数据集中选择随机样本比从包含 500 个实体的数据集中选择 10 个实体更复杂。另外,我们必须确保随机样本是否确实是随机的!

继续我们的假设,我们可以使用 MATLAB 从我们的数据集中提取随机样本。MATLAB 为我们提供了几个函数来从给定的数据集中选择随机样本/数据。例如,我们可以使用 MATLAB 中的函数 randsample 从任何包含数据的数组或矩阵中随机选择样本,无论是否有替换/替换。

使用 MATLAB 中的 randsample 函数提取随机样本

假设 N_obs 观察是随机选择的,并从数据集中的条目中替换,我们使用以下函数:

O_put = randsample(ourdata,N_obs)

其中 N_obs 表示观察次数。如果 ourdata 是一个向量,我们的输出 O_put 也将是一个包含数据集中 N_obs 个随机样本的向量。

让我们使用这个函数来解决我们假设的问题。

代码:

%Let's assume we have 50,000 entries in a dataset "ourdata".

ourdata=50000;

%We want to obtain 5 random samples from this dataset 

N_obs=5;

%Let's follow the above-explained concept and write our code

O_put = randsample(ourdata,N_obs);

输出:

O_put =

       46700
       33937
       42457
       32788
        1786

使用 MATLAB 中的 datasample 函数提取随机样本

如果我们想在提取随机样本时牢记尺寸,那么我们使用下面的函数。

y = datasample(ourdata,N_obs,'Replace',false)

如果 Replacetrue,我们选择有替换的样本;否则,我们选择不替换的样本。如果 Replace 设置为 false,我们限制 N_obs,使其不超过我们在数据集中设置的元素数量。

Replace 默认为 true

true = 替换样本。

false = 没有替换的样本。

我们可以通过编写单行代码来实现这一点。牢记上述假设,我们将代码制定如下。

%Let's assume we have 50,000 entries in a dataset "ourdata".
%We want to obtain 5 random samples from this dataset 
%Let's follow the above-explained concept and write our code using function
%datasample
%Let's Draw five unique values from the integers 1:50000 using 1 line code.

O_put = datasample(1:50000,5,'Replace',false);

输出:

O_put =

       24489       22279       32315       35467       37732

在 MATLAB 中使用 datasample 从数据集矩阵中提取列的随机样本子集

为此,我们将使用 MATLAB 中的 randn 函数。它创建具有正态分布的随机值数组。

I_put=randn(A) 生成一个 A-by-A 矩阵,其中包含随机生成的元素。

如果 A 不是标量(向量),则 MATLAB 将显示错误消息。

现在,为了获得我们的随机样本,我们将使用 datasample 函数,给出给定数据矩阵的随机列的子集。

代码:

I_put = randn(10,100000);
O_put = datasample(I_put,5,2,'Replace',false)

输出:

O_put =

-0.5995   -0.7377   -1.1902   -0.6021   -1.0812
-0.0572   -0.7831    0.4746    0.7105   -0.8038
 0.8401    1.0824   -0.3507    0.4069   -2.0817
-1.1358   -0.9041   -0.1702    0.5950    0.3954
-1.0887   -0.7766   -1.6901   -0.5047    1.1286
-0.0187   -0.3354   -0.7458    1.8554    0.8492
 0.3251   -0.4219    0.2440   -0.4750    0.7628
 1.4713   -1.9788   -1.6672    0.0035   -0.4316
 0.6880    1.4387   -1.3525   -0.6950    0.6411
-0.2777   -0.4776   -0.9841    1.2752    0.2645

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 MATLAB 中注释多行

发布时间:2023/04/23 浏览次数:111 分类:MATLAB

可以使用注释块方法或 MATLAB 编辑器在 MATLAB 中注释多行。

MATLAB 最大索引

发布时间:2023/04/23 浏览次数:192 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 max() 函数从数组及其索引中查找最大值。

MATLAB 索引超出矩阵尺寸

发布时间:2023/04/23 浏览次数:103 分类:MATLAB

要解决索引超出矩阵索引的问题,请检查你要获取或替换数据的索引。

MATLAB 检查变量类型

发布时间:2023/04/23 浏览次数:92 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。

MATLAB vs Octave

发布时间:2023/04/23 浏览次数:74 分类:MATLAB

我们可以说 Octave 是 MATLAB 的免费版本。

MATLAB MAT 文件

发布时间:2023/04/23 浏览次数:89 分类:MATLAB

可以使用 MAT 文件在 MATLAB 中存储和加载格式化的数据。

MATLAB asv 文件

发布时间:2023/04/23 浏览次数:180 分类:MATLAB

.asv 文件是 MATLAB 生成的自动保存文件,因此在计算机崩溃时你不会丢失数据。

MATLAB 三元运算符

发布时间:2023/04/23 浏览次数:130 分类:MATLAB

MATLAB 中没有三元运算符,因此你必须使用标准格式。

MATLAB & vs &&

发布时间:2023/04/23 浏览次数:134 分类:MATLAB

在 MATLAB 中,&是逻辑与运算符,&&也是表现出短路行为的逻辑运算符。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便