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

在Matlab矩阵中常用的一些操作

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2019-10-23 19:14 编辑
9 I  z( P1 J$ Z- \' Q! w7 ^8 w/ y! C8 g! l9 \
一、矩阵的表示) j) Z% W- n2 B
- ]6 p8 H! r8 X' N/ d2 ?

, K" V/ @. z% n在MATLAB中创建矩阵有以下规则:
( J# t3 o7 t0 @# h, A8 F5 O1 M; t9 c3 [! P% a

' Z8 T8 G# x9 O' i/ Q: ]% Ea、矩阵元素必须在”[ ]”内;
6 y5 b! L+ L& _$ _4 w2 {/ K8 e; a1 S
9 `  x* k1 m& O( o4 @+ W
b、矩阵的同行元素之间用空格(或”,”)隔开;, T& t+ ~$ O# g

; h3 A3 N, f) C7 @# C; H
! a9 B" ]- v( s8 @
c、矩阵的行与行之间用”;”(或回车符)隔开;
, ?6 s. i4 _  q8 v7 t* e4 F" `6 Q
3 J& Y- c/ O# ^: |5 O
/ L( r# P( M3 z; |6 @
d、矩阵的元素可以是数值、变量、表达式或函数;: C; u- h4 _" X4 |% h
" J; x8 e, Y: ^' K: V- v  ^5 J

! N4 v3 |/ _; c0 u8 }e、矩阵的尺寸不必预先定义。
: g5 L3 m0 J: ^2 E3 d4 h+ f3 N' ~
% C3 V' Q3 O: r* N; k
5 L: o2 n* L2 f/ @  B
二,矩阵的创建:
4 r1 {" r, B% D% g: J2 U. e8 q$ H. ?* m
# k% Z0 G& L  Z0 U! R3 Z9 a3 z4 c* z
1、直接输入法
! j. z0 ?" p( `  ]
$ X/ y3 _' V! n. \
0 C$ N  r  G4 y, |0 S7 k% }# U
最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。
7 t5 J% e' o- T7 J, Q. O8 o. ]8 X: K' D5 R6 n5 d
2、利用MATLAB函数创建矩阵& \- S7 C5 e( I* x" ]

5 W& v" j4 H2 o: {6 @/ X4 i/ L
* Z% x8 p3 c& N$ }/ f' p  {
基本矩阵函数如下:3 K5 Q) Y0 k$ U
9 N) z* f& c. f0 b4 p9 `

: h, s' V3 f$ \! P& o' s(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;
0 N$ {, \3 R( e" Y  y' J! p6 V5 d: w/ E' Z6 f: {+ R- ^
- r6 l8 o$ o7 g
(2) zeros()函数:产生全为0的矩阵;
; k; ]) B! G& r2 B, f& F% p7 \' E+ C& w% M

/ D/ A7 f0 Y$ K8 h8 g" R" @(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;# Y6 U; q: v$ B

* j- N2 `/ V4 }$ W
9 Z& M$ ]6 o9 w2 _# H. r$ R0 H8 Q
(4) eye()函数:产生单位阵;
0 o; S1 m: g  S. R
) n' u0 L7 M4 h. J! z. h# O
' d) T& o# U+ M, [! t
(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。) R# ^% S7 A: q

+ C' V8 d% M* R5 u/ D
& y; O0 N9 ?, t7 t
3、利用文件建立矩阵
# Q$ @8 N& I2 A+ |
2 ?8 V8 l9 O# |+ a
! F. b' Z$ Q' M. M0 B8 q! V
当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。
0 b, J/ y+ M2 V) f6 ?; N
: }% H: C5 v0 D) v% M  I

; N' |  K& O9 q( g三、矩阵的简单操作
6 k: H/ K, o) t# s" P3 @+ Z2 q4 q+ f2 M
9 K% r* h* h, ~0 T) l
1.获取矩阵元素
; l! p$ }$ `8 T, |$ i9 @% a+ k7 q/ [! E) f: W# f" z
5 Y$ }, W- j# A  |
可以通过下标(行列索引)引用矩阵的元素,如 Matrix(m,n)。0 k6 A! j* y: K- o7 ], l) [, n  q
: a: o# l  L7 p0 }0 O& O+ y' R7 @
: M: K( o3 _: k; p* [* Z6 p
也可以采用矩阵元素的序号来引用矩阵元素。
; ^" j9 x0 U3 V+ z- b2 S, X3 T- X! h4 X  }" b# j# X1 _

1 F+ ?* Y- W0 o0 J' \矩阵元素的序号就是相应元素在内存中的排列顺序。8 e( U+ s" S; P2 u7 E& h! t+ l; Z
1 q1 e" ~2 G1 S% \9 h& C0 D! T+ @
. Q5 @5 ~' z5 w  D5 N' x0 r
在MATLAB中,矩阵元素按列存储。6 T) y# F" d, W8 ^6 m, j2 Z

( v' G2 C) D/ N

% d' P; q! e! w: U5 Y序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。
0 a7 V( V( Y: b4 M
/ c$ I" q! k3 Z: d( D& E' b- ^

5 J% E4 v6 B0 {! s# [. D( O其相互转换关系也可利用sub2ind和ind2sub函数求得。
# I2 X6 S& |+ c
6 j; o+ D% Z+ }1 W# @* ^( O

% k  ^- v% |7 t- Z% R" }2.矩阵拆分, g* {" R# [* Z3 k+ {* f+ M# p

  i% [- K; d; y9 l5 B# v) Y: Y

  g, {% B6 m$ |$ _利用冒号表达式获得子矩阵:6 u1 c; b7 t3 [; \3 h5 f

! a7 \3 r( H- F+ Q3 f! |
! @" y3 o. \$ g4 E6 a& ]
(1) A(: ,j)表示取A矩阵的第j列全部元素;A(i,: )表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。
) ]4 t' c9 T  J' e9 G( g7 G6 w1 z9 H
& a: v" Y5 V( z' g
(2) A(i:i+m,: )表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。+ V, r- N- w: a7 m

9 n, Z* c" G0 t4 ?* x, ~

$ g  n. [1 O' Q, V! z利用空矩阵删除矩阵的元素:
2 V0 }+ w0 l9 F6 v8 I
2 e! y# O0 z6 A2 Z) j
0 v- [! J; k" {$ X/ `; X
在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。5 J3 I; i$ [1 G0 H6 \& J

* h) q  b% [  T* k
9 ?$ K9 N! T' A4 v1 F# L
3、特殊矩阵( i. d& `, v/ `# I; X( ]
) P" C# S& s9 d7 G

5 E* h; c! T0 }2 d2 g* C7 ?( x% Y6 x
游客,如果您要查看本帖隐藏内容请回复

# U' T0 {" t0 O3 u7 O! g3 x) u4 R, U% p7 g. H) v, E! e& @

$ M+ o: O( J) U" P
: ?! C6 Q4 K+ G0 A5 R" X9 m! ?7 [3 y* d% g
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-4 12:15 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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