matlab 调整矩阵形状,matlab对矩阵/向量的常用操作(拼接矩阵、向量逆序、改变矩阵形状、求行阶梯形矩阵、提取矩阵的一部分等)...

几乎所有变量在matlab中都可以视为矩阵(1 x 1元素,1 x n向量,m x n矩阵等),matlab中对矩阵/向量的操作非常多,个人认为对矩阵的操作是体现matlab功底的地方;灵活搭配使用这些基本的函数,能够实现很多功能,下面给出一些matlab中个人常用的对矩阵/向量操作的示例:

一、创建矩阵:

(1)创建全零/全一矩阵:

1 A = zeros(3,2)2 B = ones(3,2)

二、提取矩阵的一部分:

(1)提取矩阵的某个元素:

1 A = [1,2;3,4;5,6];2 a = A(2,1);   % 提取矩阵 A 第 2 行第 1 列元素 ,a = 3;

(2)提取某一列(行)矩阵:

提取矩阵某一行:

1 A = [1,2;3,4;5,6]2 a = A(2,:)      % 提取矩阵 A 第 2 行所有元素,这里:表示“所有”

同理,提取矩阵某一列:

1 A = [1,2;3,4;5,6]

3 a = A(:,1)      % 提取矩阵 A 第 1 列所有元素,这里:表示“所有”

(3)提取奇数/偶数列(行):

提取矩阵奇数行:

1 A = [1,2;3,4;5,6]2 a = A(1:2:end ,:) % 提取矩阵 A 奇数行所有元素,这里:表示“所有”

2为步长

同理,提取矩阵偶数列:

1 B = [1,2,3,4;2,3,4,5;4,5,6,7;5,6,7,8]2 b = B( :,2:2:end) % 提取矩阵 B 偶数列所有元素,这里:表示“所有”,第一个2为起始列,第二个2为步长

三、矩阵的拼接:

1 A = [1,2;3,4;5,6]2 B = [7,8;9,10;11,12]3

4 C = [A,B] % 或 C =[A B],“,”或“ ”表示横向连接5 D = [A;B] % “;”表示纵向连接

四、改变矩阵形状(重构矩阵):

B = reshape(A,m,n);    % 把矩阵A变成 m,n的矩阵B ,要求矩阵A、B的元素个数保持一致 = m x n

1 A = [1,2;3,4;5,6]

2 B = reshape(A,2,3) % 把矩阵 3 行 2 列的矩阵A变成 2 行 3 列的矩阵B

五、矩阵逆序

横向逆序:B = fliplr(A);

纵向逆序:B = flipud(A);

示例:

常用:将向量逆序排列:

1 A = [1,2,3,4,5,6,7,8];2 B = fliplr(A) % 横向逆序,B = 8     7     6     5     4     3     2     1

1 A = [1,2;3,4;5,6]

3 B = flipud(A) %纵向逆序4 C = fliplr(A) % 横向逆序

结果:

1 A =

2

3 1 2

4 3 4

5 5 6

6

7

8 B =

9

10 5 6

11 3 4

12 1 2

13

14

15 C =

16

17 2 1

18 4 3

19 6 5

六、矩阵其他小操作

(1)、求矩阵的转置

1 A = A‘

(2)、求矩阵的秩:

1 r = rank(A)

(3)、化简成行阶梯形矩阵:

1 B = rref(A)

(4)、求矩阵的逆:

1 inv(A) 或2 A^-1

(5)、求矩阵的迹:

1 t = trace(A)

(6)、求方阵的行列式的值:

1 d = det(A)

(7)、求矩阵的行列数:

1 [m,n] = size(A) % m:矩阵的行数,n:矩阵的列数

只判断行或列数:

1 m = size(A,1) % m返回size函数的第1个变量:行数

1 n = size(A,2) % n返回size函数的第2个变量:列数

七、自己编写的小模块

(1)、将向量统一变成行向量:

1 %判断signal是否为列向量,最后都调整为行向量2 if size(A,2) == 1             % 代表是列向量

3 A = A‘;

4 end

原文链接:https://www.cnblogs.com/CCWangsj/p/13055251.html

本文来自网络,不代表手讯网立场。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值