如何在MATLAB中选择矩阵的随机行?


在MATLAB中,我们可以对矩阵执行各种操作。其中一项操作是从矩阵中选择随机行。MATLAB提供了几种不同的方法来从矩阵中选择随机行。在本教程中,我将解释使用MATLAB从矩阵中随机选择行的不同方法。

在MATALB中选择随机行

在MATLAB中,我们有各种内置函数可用于随机选择矩阵的行。

以下是从矩阵中随机选择行的一些常用函数:

  • randperm() 函数

  • randsample() 函数

  • randi() 函数

  • datasample() 函数

让我们讨论一下在MATLAB中使用这些函数从矩阵中随机选择行的用法。

MATLAB中的randperm()函数

“randperm()”函数是MATLAB库中的内置函数。此函数生成输入数字的随机排列。

我们可以使用此函数生成矩阵行索引的随机排列。然后,可以使用此随机生成的排列从矩阵中选择随机行。

下面介绍了使用MATLAB中的“randperm”函数从矩阵中选择随机行的步骤。

  • 步骤1 - 创建一个矩阵。

  • 步骤2 - 指定要随机选择的行数。

  • 步骤3 - 确定矩阵的行数。

  • 步骤4 - 使用“randperm”函数生成矩阵行索引的随机排列。

  • 步骤5 - 选择与步骤4中生成的随机行索引对应的行。

  • 步骤6 - 显示结果。

示例1

让我们通过MATLAB中的一个示例来了解这些步骤。

% MATLAB code to select random rows from matrix using randperm function
% Create a sample matrix
mat = [10 20 40 60; 12 14 10 74; 40 50 80 90; 30 12 35 24; 86 24 74 36];

% Specify the number of rows to select
num_rows = 2;	% Adjust as required

% Determine the number of rows in the matrix
total_rows = size(mat, 1);

% Generate random permutation of row indices
p = randperm(total_rows, num_rows);

% Select rows according to random row indices
random_rows = mat(p, :);

% Display the input matrix and selected random rows
disp('Input Matrix:');
disp(mat);

disp('Randomly Selected Rows:');
disp(random_rows);

输出

以下是输出:

Input Matrix:
    10    20    40    60
    12    14    10    74
    40    50    80    90
    30    12    35    24
    86    24    74    36
Randomly Selected Rows:
    40    50    80    90
    30    12    35    24

这就是如何在MATLAB中使用“randperm”函数从矩阵中选择随机行的方法。运行此代码时,它将返回从矩阵中随机选择的不同行。

MATLAB中的randsample()函数

在MATLAB中,可以使用“randsample()”函数从矩阵中选择随机行。此函数用于获取随机选择的行的索引。然后,使用这些索引从矩阵中选择随机行。

下面解释了使用“randsample”函数从矩阵中选择随机行的分步过程。

  • 步骤1 - 创建一个矩阵。

  • 步骤2 - 指定要选择的随机行数。

  • 步骤3 - 使用“randsample”函数获取随机选择的行的索引。

  • 步骤4 - 使用随机索引从矩阵中选择随机行。

  • 步骤5 - 显示结果。

示例2

让我们来看一个MATLAB编程示例来实现这些步骤。

% MATLAB code to select random rows from matrix using randsample function
% Create a sample matrix
mat = [10 20 40 60; 12 14 10 74; 40 50 80 90; 30 12 35 24; 86 24 74 36];

% Specify the number of rows to select
num_rows = 2;	% Adjust as required

% Determine the number of rows in the matrix
total_rows = size(mat, 1);

% Get the indices of randomly selected rows
p = randsample(total_rows, num_rows);

% Select rows according to random row indices
random_rows = mat(p, :);

% Display the input matrix and selected random rows
disp('Input Matrix:');
disp(mat);

disp('Randomly Selected Rows:');
disp(random_rows);

输出

运行此代码时,将产生以下输出:

Input Matrix:
    10    20    40    60
    12    14    10    74
    40    50    80    90
    30    12    35    24
    86    24    74    36
Randomly Selected Rows:
    40    50    80    90
    86    24    74    36

MATLAB中的randi()函数

在MATLAB中,我们还可以使用“randi”函数从矩阵中随机选择行。

使用“randi”函数从矩阵中选择随机行的步骤与上述两种方法相同。

示例3

让我们来看一个示例,以了解使用“randi”函数从矩阵中选择随机行的用法。

% MATLAB code to select random rows from matrix using randi function
% Create a sample matrix
mat = [10 20 40 60; 12 14 10 74; 40 50 80 90; 30 12 35 24; 86 24 74 36];

% Specify the number of rows to select
num_rows = 2;	% Adjust as required

% Determine the number of rows in the matrix
total_rows = size(mat, 1);

% Generate indices of random rows
p = randi(total_rows, 1, num_rows);

% Select rows according to random row indices
random_rows = mat(p, :);

% Display the input matrix and selected random rows
disp('Input Matrix:');
disp(mat);

disp('Randomly Selected Rows:');
disp(random_rows);

输出

以下是输出:

Input Matrix:
    10    20    40    60
    12    14    10    74
    40    50    80    90
    30    12    35    24
    86    24    74    36
Randomly Selected Rows:
    10    20    40    60
    12    14    10    74

MATLAB中的datasample()函数

在MATLAB中,还有一个名为“datasample”的函数,可用于从矩阵中随机选择行。

以下是使用“datasample”函数从矩阵中选择随机行的步骤。

  • 步骤1 - 创建一个矩阵。

  • 步骤2 - 指定要从矩阵中随机选择的行数。

  • 步骤3 - 使用“datasample”函数从矩阵中随机选择行。

  • 步骤4 - 显示随机选择的行。

示例4

让我们来看一个例子,了解在MATLAB中实现这些步骤。

% MATLAB code to select random rows from matrix using datasample function
% Create a sample matrix
mat = [10 20 40 60; 12 14 10 74; 40 50 80 90; 30 12 35 24; 86 24 74 36];

% Specify the number of rows to select
num_rows = 3;	% Adjust as required

% Select the rows randomly from the matrix
random_rows = datasample(mat, num_rows);

% Display the input matrix and selected random rows
disp('Input Matrix:');
disp(mat);

disp('Randomly Selected Rows:');
disp(random_rows);

输出

以下是输出:

Input Matrix:
    10    20    40    60
    12    14    10    74
    40    50    80    90
    30    12    35    24
    86    24    74    36
Randomly Selected Rows:
    40    50    80    90
    86    24    74    36
    10    20    40    60

结论

总而言之,MATLAB提供了各种内置函数,我们可以用它们从矩阵中随机选择行。在本文中,我解释了在MATLAB中选择矩阵随机行的四个最常用的函数。您可以尝试使用不同的矩阵和不同的随机行数来运行这些代码。

更新于:2023年10月25日

434 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.