在 matlab 中交换行和列-ag捕鱼王app官网

在 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

发布时间:2024/02/04 浏览次数:142 分类:python

本文演示了如何在 python matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。

发布时间:2024/02/04 浏览次数:180 分类:python

本教程展示了我们如何使用 plt.text()方法在 matplotlib 中为图或轴添加文字。

发布时间:2024/02/04 浏览次数:208 分类:python

`fill_between()` 每次只能填充两条线之间的区域,但是我们可以选择一对行来填充多个线条之间的区域。

发布时间:2024/02/04 浏览次数:166 分类:python

本教程讲解了我们如何在 matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.linecollection 绘制任意线条。

发布时间:2024/02/04 浏览次数:189 分类:python

在本教程中,我们将探讨如何使用 `dataframe` 对象的 `plot()` 方法在柱状图上绘制多列。

发布时间:2024/02/04 浏览次数:178 分类:python

本教程介绍了如何使用 plt.hist()方法从数据列表中绘制直方图。我们可以使用 plt.hist()方法从数据列表中绘制直方图。

发布时间:2024/02/04 浏览次数:182 分类:python

本教程展示了如何使用 plt.bar()方法将某些数据集的条形图堆叠在另一个数据集上。我们在 matplotlib 中使用 matplotlib.pyplot.bar()方法生成条形图。

发布时间:2024/02/04 浏览次数:136 分类:python

本教程解释了如何反转 python matplotlib plot 的 colormap。

发布时间:2024/02/04 浏览次数:250 分类:python

本教程将介绍我们如何在 matplotlib 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图