找回密码
 注册
关于网站域名变更的通知
查看: 391|回复: 1
打印 上一主题 下一主题

Matlab的向量与矩阵运算

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-16 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 mytomorrow 于 2019-12-16 11:14 编辑 6 K+ @% O' _1 y9 w

+ c( L1 ^3 e  |3 G. X

Matlab能处理数、向量和矩阵.但一个数事实上是一个1×1的矩阵,1个n维向量也不过是一个1×n或n×1的矩阵.从这个角度上来讲,Matlab处理的所有的数据都是矩阵.Matlab的矩阵处理能力是非常灵活、强大的.以下我们将从矩阵的产生、基本运算、矩阵函数等几个方面来说明.

§2.1向量及矩阵的生成

除了我们在上节介绍的直接列出矩阵元素的输入方法,矩阵还可以通过几种不同的方式输入到Matlab中.

§2.1.1 通过语句和函数产生

1. 向量的产生

除了直接列出向量元素(即所谓的“穷举法”)外,最常用的用来产生相同增量的向量的方法是利用“:”算符(即所谓的“描述法”).在Matlab中,它是一个很重要的字符.如:

z=1:5

z =

     1    2     3    4     5

即产生一个1~5的单位增量是1的行向量,此为默认情况.

用“:”号也可以产生单位增量不等于1的行向量,语法是把增量放在起始量和结尾量的中间.如:

x=0:pi/4:pi

即产生一个由0~pi的行向量,单位增量是pi/4=3.1416/4=0.7854.

x =

0     0.7854           1.5708           2.3562           3.1416

也可以产生单位增量为负数的行向量.如:

y=6:-1:1

y =

     6    5     4     3    2     1

2. 矩阵的产生

Matlab提供了一批产生矩阵的函数:

zeros

产生一个零矩阵

diag

产生一个对角矩阵

ones

生成全1矩阵

tril

取一个矩阵的下三角

eye

生成单位矩阵

triu

取一个矩阵的上三角

magic

生成魔术方阵

pascal

生成PASCAL矩阵

( i) h3 V& M& Y5 ]( T

例如:

ones(3)

ans =

1    1     1

1    1     1

1    1     1

eye(3)

ans =

1    0     0

0    1     0

0    0     1

除了以上产生标准矩阵的函数外,Matlab还提供了产生随机(向量)矩阵的函数rand和randn,及产生均匀级数的函数linspace、产生对数级数的函数logspace和产生网格的函数meshgrid等等.详细使用请查阅随机文档.

“ : ”冒号可以用来产生简易的表格,为了产生纵向表格形式,首先用冒号“ : ”产生行向量,再进行转置,计算函数值的列,然后形成有二列的矩阵.例如命令:

x=(0.0:0.2:3.0)';

y=exp(-x).*sin(x);

[x y]

产生结果为:

ans =

0             0

0.2000      0.1627

0.4000      0.2610

0.6000      0.3099

0.8000      0.3223

1.0000      0.3096

1.2000      0.2807

1.4000      0.2430

1.6000      0.2018

1.8000      0.1610

2.0000      0.1231

2.2000      0.0896

2.4000      0.0613

2.6000      0.0383

2.8000      0.0204

3.0000      0.0070

§2.1.2 通过后缀为.m的命令文件产生

如有文件data.m,其中包括正文:

A=[  1 2 3

4 5 6

7 8 0]

则用data命令执行data.m,可以产生名为A的矩阵.

§2.2 矩阵操作

在Matlab中可以对矩阵进行任意操作,包括改变它的形式,取出子矩阵,扩充矩阵,旋转矩阵等.其中最重要的操作符为“:”, 它的作用是取出选定的行与列.

例如:

A(:,: ) 代表A的所有元素;试比较A(: ),将A按列的方向拉成长长的1列(向量);

A(:,J) 代表A的第J列;

A(J:K) 代表 A(J), A(J+1), …, A(K),如同A(: )的第J到第K个元素;

A(:,J:K) 代表A(:,J), A(:,J+1), …, A(:,K),如此类推.

对矩阵可以进行各种各样的旋转、变形、扩充:


8 U" Q/ f7 S5 n* x% k/ F/ V

矩阵的转置用符号“ ' ”表示:

如A=[1  2  3;  4  5  6 ;  7  8  0]

那么:计算B=A'

B =

1    4     7

2    5     8

3    6     0

符号“ ' ”为矩阵的转置,如果Z为复矩阵,则Z'为它的复数共轭转置,非共轭转置使用Z.' 或conj(Z')求得.

reshape改变矩阵的形状,这是什么意思呢?可举一个例子来说明.

A=[A;[10 11 12]]

A =

1    2     3

4    5     6

7    8     0

10 11   12

则 reshape(A,2,6)

ans =

1    7     2     8    3     0

4    10   5     11   6     12

可见,reshape 是将矩阵元素以列为单位进行重组,原来4×3的矩阵变为了2×6的矩阵.

% ?% `' X9 i- w7 L" w
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2019-12-16 18:26 | 只看该作者
    学习了,谢谢分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-20 06:39 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表