在 MATLAB 中交换行和列
本教程演示如何在 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 行交换。 查看输出:
正如我们所见,第 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])。
查看此代码的输出。
在 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()
方法返回数组每个维度的大小或指定矩阵的大小。 该方法可用于以下不同的方式。
- size(X) - 返回数组每个维度的大小。
- [m,n] = size(X) - 返回两个变量中指定矩阵的大小。
- size(X,dim) - 通过标量 dim 返回 X 维度的大小。
- [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
相关文章
MATLAB 检查变量类型
发布时间:2023/04/23 浏览次数:92 分类:MATLAB
-
在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。