首页 > 编程笔记

MATLAB改变矩阵维度(2种方法)

矩阵的变维可以用冒号法和函数法。

1、冒号法

用符号“:”设置矩阵维度的格式为:
A(:)=B(:)

【实例 1】修改矩阵维度。
MATLAB 程序如下:
>> clear            % 清除工作区的变量
>> A=1:12           % 创建一个行向量
A =
     1     2     3     4     5     6     7     8     9    10  11  12
>> C=zeros(3,4);    % 用冒号法必须先设定修改后矩阵的形状
>> C(:)=A(:)        % 将矩阵维度变换为3行4列
C =
     1     4     7    10
     2     5     8    11
     3     6     9    12

2、函数法

在 MATLAB 中,reshape() 函数用于重新设置矩阵的维度,该函数的调用格式及说明如下表所示。

表 2 reshape() 函数调用格式及说明
调用格式 说 明
B = reshape(Asz) 将 A 重构为向量 sz 指定大小的矩阵
B = reshape(Asz1, ..., szN) 将矩阵 A 变维成一个 sz1x...x szN 矩阵,其中 sz1, … , szN 指示每个维度的大小

在 MATLAB 中,permute() 函数用来置换矩阵维度,该函数的调用格式及说明如下表所示。

表 3 permute() 函数调用格式及说明
调用格式 说 明
B = permute(Adimorder) 按照维度顺序行向量 dimorder 指定的顺序重新排列矩阵的维度

【实例 2】将向量重构为矩阵。
MATLAB 程序如下:
>> clear               % 清除工作区的变量
>> A = 1:6             % 创建一个行向量
A =
     1     2     3     4     5     6
>> B = reshape(A,[2,3])  % 将A变维成3×3的矩阵
B =
     1     3     5
     2     4     6
>> C=permute(B,[2 1])  % 交换矩阵B的行和列维度
C =
     1     2
     3     4
     5     6

推荐阅读