迹忆客 专注技术分享

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

在 MATLAB 中交换行和列

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

本教程演示如何在 MATLAB 中交换行和列。

MATLAB 有不同的方法来相互交换行和列。 本教程包括在 MATLAB 中交换行和列的不同方法。


使用基本 MATLAB 交换行和列

Base MATLAB 有一个简单的功能,可用于交换行与行和列与列。 让我们尝试一个用行交换行的例子。

% Random 4x6 matrix
A = rand(4,6)

%Swap 1st row with the fourth.
A([4 1],:) = A([1 4],:)

上面的代码创建了一个随机的 4x6 矩阵,并将第 1 行与第 4 行交换。 查看输出:

交换行 4x6

正如我们所见,第 1 行与第 4 行交换。 现在让我们对列尝试相同的示例。

% Random 4x6 matrix
A = rand(4,6)

%Swap 1st column with the sixth.
A(:,[1 6]) = A(:,[6 1])

您可能认为代码相似,但有细微差别。 对于行,我们使用表达式 A([4 1],:),对于列,我们在开头使用逗号和冒号符号,如 A(:,[1 6])。

查看此代码的输出。

交换列 4x6


在 MATLAB 中使用用户定义的函数交换行和列

我们还可以使用基本 MATLAB 功能创建用户定义的函数,该函数可用于行和列。 这是功能。

swap.m:

function matrix = swap(matrix,dimension,a,b)

if dimension == 1
    row_swap = matrix(a,:);
    matrix(a,:) = matrix(b,:);
    matrix(b,:) = row_swap;
elseif dimension == 2
    col_swap = matrix(:,a);
    matrix(:,a) = matrix(:,b);
    matrix(:,b) = col_swap;
end

上面的函数需要四个参数,首先是矩阵; 其次,维度,其中 1 表示行,2 表示列,两个元素可以相互交换,行或列。

让我们尝试用这个函数交换行。

% Random 4x6 matrix
A = rand(4,6)

% Swap rows using the swap function
swap(A,1,1,4)

上面的代码会将第一行与第四行交换。 查看输出:

交换行功能

要交换列,我们需要将维度更改为 2。请参见示例:

% Random 4x6 matrix
A = rand(4,6)

% Swap rows using the swap function
swap(A,2,1,6)

上面的代码将使用 swap 函数交换第一列和第六列。 查看输出:

交换列功能


在 MATLAB 中结合使用 randperm() 和 size() 函数交换行和列

randperm() 方法用于对指定矩阵的整数进行随机排列。 它只需要一个参数,即矩阵。

size() 方法返回数组每个维度的大小或指定矩阵的大小。 该方法可用于以下不同的方式。

  1. size(X) - 返回数组每个维度的大小。
  2. [m,n] = size(X) - 返回两个变量中指定矩阵的大小。
  3. size(X,dim) - 通过标量 dim 返回 X 维度的大小。
  4. [d1,d2,d3,…,dn] = size(X) - 在单独的变量中返回数组的 n 维大小。

其中 X 是数组、矩阵或维度,dim 是维度的标量值。 这种方法的缺点是它随机交换行或列。

让我们尝试使用此方法交换行。

% Random 4x4 matrix
A = rand(4,4)

% Calling the randperm() and size() methods
% to swap rows
Swapped = A(randperm(size(A, 1)),:)

上面的代码将随机交换一行。 查看输出:

A =

    0.4574    0.6377    0.2891    0.2548
    0.8754    0.9577    0.6718    0.2240
    0.5181    0.2407    0.6951    0.6678
    0.9436    0.6761    0.0680    0.8444


Swapped =

    0.9436    0.6761    0.0680    0.8444
    0.4574    0.6377    0.2891    0.2548
    0.5181    0.2407    0.6951    0.6678
    0.8754    0.9577    0.6718    0.2240

与交换列类似,这里是示例。

% Random 4x4 matrix
A = rand(4,4)

% Calling the randperm() and size() methods
% to swap rows
Swapped = A(:, randperm(size(A, 1)))

上面的代码将随机交换给定矩阵的列。 查看输出:

A =

    0.6022    0.4624    0.3225    0.1759
    0.3868    0.4243    0.7847    0.7218
    0.9160    0.4609    0.4714    0.4735
    0.0012    0.7702    0.0358    0.1527


Swapped =

    0.3225    0.6022    0.4624    0.1759
    0.7847    0.3868    0.4243    0.7218
    0.4714    0.9160    0.4609    0.4735
    0.0358    0.0012    0.7702    0.1527

转载请发邮件至 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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便