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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2019-10-23 19:14 编辑
" t7 u# J; g9 h* `6 t& {- D8 i1 X, B
一、矩阵的表示
1 ~3 a% T9 s, x2 v$ u9 b( y" Y& b: c
1 s% u8 @" A6 F, w
在MATLAB中创建矩阵有以下规则:) {" Q( N0 O6 b9 W) l
3 u- b$ `6 S- M! X7 `. L5 c

2 Z# ?* h/ I' I" n: |a、矩阵元素必须在”[ ]”内;
0 y$ _9 X# \" n4 Z/ N* u8 z' z; w
$ s' U4 O% }3 b1 `$ p8 p/ ]

" r" V4 _$ ?: S1 \3 d& C2 n- Tb、矩阵的同行元素之间用空格(或”,”)隔开;9 e" }# m' K2 I
0 n' y9 U2 Q! g7 P9 I6 J
1 {+ Z5 l: w% E4 u, y) V4 `/ R
c、矩阵的行与行之间用”;”(或回车符)隔开;; n5 T7 O& ]8 U' _1 L# T) G0 i
# K0 `: H; E" c. N5 A, c5 E
' |- ?% C' P8 S/ ]1 z
d、矩阵的元素可以是数值、变量、表达式或函数;% r8 V6 G: o7 v1 D) M+ |4 x
! j2 U: Q3 }1 [& n$ A
' b, K' H% S3 ]0 U7 X& j
e、矩阵的尺寸不必预先定义。
, @) f, v( R* v$ b" h) y; F  B. I3 U8 o. \- U* C( \) Z

" W4 q; y% d5 k二,矩阵的创建:
; i: F4 I4 H: S
7 E) \$ i: n  W4 F

- {8 g6 `9 J0 e; t0 k& B4 X1、直接输入法- n; H" {+ p: z! Z

: I3 @1 P: l* d

4 J0 v: [# j! ~! _2 ~5 S& a最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。6 g" U0 I. f! e# O  |' E9 x2 _0 d
( A' [2 S6 _# g
2、利用MATLAB函数创建矩阵- p3 [! w; k1 h/ K8 b9 n

$ a$ p* s* W# `5 Q5 O
1 ~6 [% W) @5 r
基本矩阵函数如下:  l$ Q: i5 q  d' h9 C0 s

" c  B' D/ E9 V; m" b
, I' D* D# I% v6 N* S- V# R
(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;
7 J2 h9 q# ]! D8 q
- n" H8 a8 i- O, n2 G2 X
& T3 b; }+ F1 \# K$ n4 d
(2) zeros()函数:产生全为0的矩阵;: ]4 t; Q3 e/ l
1 q# P% ~& p8 f

2 \: s0 o+ t6 ^8 d2 [% `& P(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;
$ b; V. ?  g8 |  E! Y" ?2 j: I8 {" m  Y2 p/ |9 c
/ J/ ?( V6 i: e- z# Z
(4) eye()函数:产生单位阵;
5 h* t; P- V& P
9 Y. d" z- B6 s' O$ N6 N: B& L6 n

. [: |5 B" P* e) r2 I(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。3 D! \4 R: @  v9 @

5 W# s5 [% J5 O: h; H

+ }8 ]( Q6 w1 i3、利用文件建立矩阵
! l/ F) H* x6 y5 i, c9 |) G7 L# d& v! M3 S& |% l
( @' d) q5 c# x
当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。
* Z5 J4 m$ G) E) \* I$ c; {3 X( k; ]/ V# @% G/ n6 i: _
; u1 Q) H  h( P# g2 S% ?  D2 Z; Q
三、矩阵的简单操作
/ d! n( v+ I, q3 G! |$ I% D  R/ ]/ W4 F  x) ~

2 R- V6 Q1 V) K/ \1 o1 J1.获取矩阵元素
: B2 G5 W( i+ H8 p+ S3 R
* j4 f, O# I) C, f* _8 i+ U

5 D4 L4 |' [5 }: A可以通过下标(行列索引)引用矩阵的元素,如 Matrix(m,n)。! a. _% _3 l, b& t6 ~# W  t

% _( {- `9 @, B! i  c
! |+ z( F7 }% v6 [+ h* |8 }
也可以采用矩阵元素的序号来引用矩阵元素。5 k9 P1 e4 O: z0 r! V7 L2 S# A; X: t

% G/ n. F$ n" p6 \

# @% O0 b# E3 D矩阵元素的序号就是相应元素在内存中的排列顺序。! K& X9 g1 d# l9 u0 |5 D5 F

5 z9 z( b3 r" M# t0 A& U

& z  C  a, S$ U  [在MATLAB中,矩阵元素按列存储。5 ~0 U8 {8 y* |# i# f) c

" L. m8 o! z. p/ ?4 |! n  Y
3 G- a; F9 |# T) u+ d
序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。" _7 q. a, C& _+ I) T% n) ?
7 x: N, y! {: A- u/ c0 N

  V6 c2 \+ e% N2 F其相互转换关系也可利用sub2ind和ind2sub函数求得。* k( k5 Q* ?9 q

- A. }& j& ^1 W
- O1 e  [" P* Y; M) F& b+ U
2.矩阵拆分
& h" t& R2 Y6 W$ Q2 C* G4 q' t: w( l: |, A& p2 k, W

: v# Y0 S% S# T, j0 f5 J利用冒号表达式获得子矩阵:
% `" a. P7 b9 B. E2 y6 Y' @+ v
. I* {% h2 V2 }/ y

7 F1 }% T4 j! k2 `) Y(1) A(: ,j)表示取A矩阵的第j列全部元素;A(i,: )表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。6 P5 i, x/ w1 k, j. m# g0 z+ k
( S1 H5 o9 h1 |  Q

0 v, m$ U6 D# l! u5 j(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表示某一维的末尾元素下标。7 [9 }$ Q2 R1 K: a1 W

- x* ~! b4 H. t: U0 q- c

) j  E7 l1 A5 F利用空矩阵删除矩阵的元素:
- M8 T  m3 b/ W+ v- B6 ?
7 v) f0 Z' N0 `9 B& C0 N  D7 p" n
; `) p4 y2 ~- c, w1 R& r
在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。
$ t8 D0 l* n- T( ~/ z
7 |; l& o  \, P# s$ C7 q. m0 i
. Y' U$ D4 \5 C& u' {
3、特殊矩阵/ E, N; e) G- Y! m

% E0 M8 m$ \, y! m4 z$ K) V8 R

. I4 u3 o( l; R& _* m6 J/ R4 r
游客,如果您要查看本帖隐藏内容请回复

5 C! ?8 w, L2 B6 Y" s+ ?. P  P: v8 p
5 B# b0 M1 A7 z- |! ?& I2 `/ K5 |! q

- G2 m1 D/ S! j0 ]3 p8 G1 L
! [" ~$ l  z: z+ K; p' q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 20:59 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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