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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2019-10-23 19:14 编辑 5 e3 e4 n" S( E% W( `1 h
! }! P+ P/ b3 A3 q- D
一、矩阵的表示0 k# @8 X! S, l' p( Q. `9 K

) T4 K8 R- Z; j& G5 k
0 f* k: u3 U8 H2 F+ g
在MATLAB中创建矩阵有以下规则:
6 ?: ?" N' _# W* Y+ {
% R8 `; p% o/ Y+ w' g" A/ N

6 \  Y# E0 N! [! v, f1 pa、矩阵元素必须在”[ ]”内;. C7 }5 {4 H, c+ W/ o0 f! x
; }! R- P0 |  i1 m3 Y+ v* u

3 |7 G+ B# s: k6 \  C+ L$ i6 M, xb、矩阵的同行元素之间用空格(或”,”)隔开;& k5 g# \5 s% B1 T  V

4 F/ M! z- r6 |3 ~3 n. O6 ?, R4 ^
# M& ], L1 V7 _2 V8 r  Y) q
c、矩阵的行与行之间用”;”(或回车符)隔开;/ I: g4 w0 {6 j" j

& c0 d& \5 C5 K! [2 i. ~% v% a

. c. x3 G! c) g1 Md、矩阵的元素可以是数值、变量、表达式或函数;
& x- f7 W% A0 g7 m; u4 A. k! i7 l- D0 z' ]
" W9 ~/ o& t& S, H0 A
e、矩阵的尺寸不必预先定义。- [6 i- ~0 t. M- y2 p4 q

+ B7 N) z; j  L0 V; I7 J
# L/ T& V& R! i, S. |
二,矩阵的创建:  J8 Y2 `9 |7 X9 P

- g- g4 X/ p% W7 u
6 b) A& g, e4 {2 z7 N/ R' H: [
1、直接输入法6 @* U" [& i8 J3 n( ~7 [2 a
/ [* [6 ?7 ?* X
5 C2 x% a* N7 X% y, F
最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。$ K0 J6 ?  c, R' f# J

6 {/ B4 z& r- i# x2、利用MATLAB函数创建矩阵
0 G* i! |/ \& |$ I7 z5 W
# H7 o- p: Y/ e  E! S; _

& t  A% Q' O. i$ Z* z5 k基本矩阵函数如下:, T" g/ K/ x& b% W! }/ P

* c5 N: q- B+ K$ X2 V  a

, F/ u/ L: S# u% [0 [(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;
) P" N, f/ g8 N& j/ L! s) D: s% u) ?# A5 Y2 T2 }

* y0 l- a6 e5 ]) g(2) zeros()函数:产生全为0的矩阵;
" I8 ?" n. ]; T: r/ d- L; \" _
  h0 u' w0 Y; J

/ z( M& X. s" K$ T(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;5 }1 v. G5 ~7 v. E
$ i, F8 k6 m3 j  X( Z. K
& v5 p6 ~9 l% x( w9 n6 S* A
(4) eye()函数:产生单位阵;2 t- {4 q3 {6 h9 I( P- @
2 }8 a5 u6 W3 @+ X

. ?0 I" G& P0 q( V3 B$ Y% u: ~( X(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。
! V  Z3 |+ q7 G5 A$ D+ a" F1 s+ b+ p

* B9 i( ~9 e5 @, @+ U+ B3、利用文件建立矩阵
; Z4 ?! w" h+ r1 Y" s. q( D' z( G5 ]' u( T& c

) [: \' w0 x1 h当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。
6 G) @' ~% L/ z# }/ r$ L4 F( j* r2 }& ]% J: W! N

/ g& Z3 W- O( [% A" P$ Z9 T三、矩阵的简单操作
( i  B$ o# x: E& w- Z  V, h, K' e5 {6 X6 M

" ?1 A  @% L- V2 B! m- `1.获取矩阵元素) f9 p" n7 V/ k) D5 K) E

; ^% I. Z. S$ k6 r. ?

: [2 b8 O  q( o0 V可以通过下标(行列索引)引用矩阵的元素,如 Matrix(m,n)。' I) v* r; A: Z

5 F% u3 h, `; c1 @4 s2 A0 C1 Z
9 o) ^  e) ]2 M- J9 r
也可以采用矩阵元素的序号来引用矩阵元素。! t! X5 {* p+ ?+ U" N: n
$ f6 _" y% f8 P  w& ?( V  V
# ?& k5 j/ {4 m0 e" t' m5 H
矩阵元素的序号就是相应元素在内存中的排列顺序。* b- R! m+ {' K

9 M& K9 y# s' f" }; u  s
, M; g1 A9 b4 T) J3 M7 B
在MATLAB中,矩阵元素按列存储。8 Y0 r. C8 j5 B

9 _& i& b- }# C8 v9 N% ^4 v5 C

/ t: [5 Z, o  ~* q) ~序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。
* a! |4 D6 W/ E! F7 L" N9 J# E6 H! m* M2 i- T
. x7 O" {, W* p' ~
其相互转换关系也可利用sub2ind和ind2sub函数求得。3 b' J" i+ @/ T

+ g2 D$ I% T( y1 f- s! y" ]
9 n5 [; {$ N9 x9 g+ G. f9 I
2.矩阵拆分
/ d/ L# l2 q0 @  c/ Q( ?/ Z! C/ O, A: O0 n: v) U2 `
. W, F% k7 {8 \6 N
利用冒号表达式获得子矩阵:2 \; k, D* n" b9 l" ]9 \
, V. b% O* M; _" Q2 \9 p

+ @0 l. z( v) b6 x0 O(1) A(: ,j)表示取A矩阵的第j列全部元素;A(i,: )表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。. f% ]; u; x$ |) t' r8 I
- o8 j: e* E& F5 b& S6 H

$ Y6 I3 j/ ?8 a% ]$ c% C(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表示某一维的末尾元素下标。9 U  ^+ a5 J2 j

; Z* k8 d# I0 K5 z8 u& G) {) t

! [8 [' _4 ~/ }利用空矩阵删除矩阵的元素:
, `6 }, P6 ^5 U4 F% o, K
' A$ l- \6 {. I0 {) Q

+ `' z, d* C0 ^; l9 T' p& Y在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。
5 \$ b: }4 ^; w; c  k* h' r( v% Q; ?+ e- h* j
& P  L6 e* w0 s
3、特殊矩阵# p: x1 }8 l' c3 ^) w! c
: f( D* f/ {* \  u& V3 N# S$ F

5 D3 i7 z3 \, @  S: Q& ~6 d7 R
游客,如果您要查看本帖隐藏内容请回复

9 B: X9 T7 m; e7 h# M
+ _& f0 u  s( k, H4 Q" j% a
' R, Y0 Q; b/ ]
% A  ]' C$ u6 Y2 B' v6 t5 u
% U5 D% O3 m( s7 s9 _
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-29 10:21 , Processed in 0.171875 second(s), 24 queries , Gzip On.

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

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

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