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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2019-10-23 19:14 编辑 2 L9 b: I4 l6 P# K6 v( x$ N
, O! J: u: s) [$ l+ W: j7 @
一、矩阵的表示
+ T) d  O% D" B6 O: w2 C4 u1 G# Z# _

- K3 b$ e* p3 s# b/ L7 T在MATLAB中创建矩阵有以下规则:
, \+ L" Q7 g! V4 ^  t4 s6 X% E! P$ k+ v6 E9 o5 i' b2 m2 S- N" v
' j9 l# x0 F5 c- y, |/ b
a、矩阵元素必须在”[ ]”内;
% l' k0 t' ?2 n: d: H$ R  ^$ G. N: W+ y9 X3 E% a2 o

8 c. Q7 x/ O' Q$ Q6 S  ^b、矩阵的同行元素之间用空格(或”,”)隔开;
) U- l7 _$ g. @; t/ @7 p2 q2 Y" Y% L& n" @; H8 a
4 F7 f) u3 J' f1 [
c、矩阵的行与行之间用”;”(或回车符)隔开;
& t# a! `* s- i/ J
$ I4 A6 e5 k+ ]+ ?! _. a* O
/ d3 r# `# o$ c, [' X$ J
d、矩阵的元素可以是数值、变量、表达式或函数;3 W' ^5 f1 I! r4 C
/ J. x/ O4 G2 V% k6 h* s

& M; i& I! h6 A7 R, P( @e、矩阵的尺寸不必预先定义。6 `, |! M0 S2 B0 j8 k" D) w
  D& i# @1 m& Q$ b; Q

' p% s- m: D9 v二,矩阵的创建:
- W) X. N; m. B' q6 s2 c
4 v1 w; ^$ {6 @6 L* V
% \3 x1 }- b  }6 ?& g0 _" q1 s+ |
1、直接输入法7 V! d8 L  q2 G  R) s, e) b! y

; u) y$ W; y8 b3 ?

" ]( V" N9 {& U! B) Q  @2 l最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。
: e& r  u; s8 G* i" |! @3 f  ^0 b3 U  k3 U
2、利用MATLAB函数创建矩阵9 n3 d3 e1 q, M) I# c
% F7 B; G- z0 j8 @# B
" ~& v- d- _1 v+ J
基本矩阵函数如下:1 x/ X: x/ q. I4 |. G* @& [: P( L

  ?7 Q! O5 X3 B; p* ~

& @) Y6 d/ A* p1 o( i# x(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;* ]) k, ~6 m3 i  _

& l" y4 [; P* c
2 A- I. F% z% z0 `
(2) zeros()函数:产生全为0的矩阵;
5 z9 {2 J4 m2 c& `$ p! F2 h) R3 p- c! Q  w& Q
- b- p$ I/ _$ O$ e- k0 G/ ^) z8 F
(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;/ f/ L, p+ h) C2 j* ]

% d2 x  {! Y1 t- C$ Y: `
) d0 W9 V+ i+ z5 Z7 S8 t
(4) eye()函数:产生单位阵;3 p0 D! w+ p" w. s* m
" o$ g# Q8 u1 C% g' h1 G

8 A. c+ G1 u/ A4 t$ S5 c: M(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。
# \' N4 K( L: N* G: L' P
8 ?& y1 |) T/ Z7 H; j; B

9 D5 d6 m% C* d) j* N+ R3、利用文件建立矩阵, p( g* w, F; x$ b! ~$ ~% F0 O& k

  d/ @1 W. J1 k

& T  X' j# X$ j+ _7 X+ I; Q当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。/ q3 \6 H' Q' t

, C2 r- C! U; x

1 c2 g+ ]1 o) p  ^三、矩阵的简单操作" h/ l! a: e, Z0 x( C; V

" Y  l- m9 y; Y  T: u8 \

3 `% g2 k* t- r) T) O1.获取矩阵元素
! \$ F) ?6 ]: M& h
  j  R! v- V% o! Y5 q/ Y  H! F

- q5 l8 u# T8 R: y可以通过下标(行列索引)引用矩阵的元素,如 Matrix(m,n)。
8 G3 e: _) @& t. @, M$ ^& Z9 V8 p& b, w3 ^9 `% k/ c& ~7 [& Z

, b6 E% E% G4 s! q/ \/ k7 Y也可以采用矩阵元素的序号来引用矩阵元素。
9 f+ i8 E3 d$ {' ~, `# Z; N+ W2 B0 v7 p% E  _1 K

1 b+ W* }2 M* s9 _5 W8 Q( @矩阵元素的序号就是相应元素在内存中的排列顺序。8 P7 n& e/ z  X2 x! c. x
( \! B. ?0 t4 t5 w1 D

) x; ~: l7 A6 t9 a在MATLAB中,矩阵元素按列存储。
  w0 E0 C- T' v2 d! @4 l& M; _! e8 K9 h

2 W1 |7 x7 s! W/ e- c  ?  y4 M( V序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。) N0 ]$ g" J9 v
  B, k* A( M  B, H
: T' q8 d$ a3 s& G7 m
其相互转换关系也可利用sub2ind和ind2sub函数求得。
' X5 d+ }/ B0 ~* J+ ?# A6 _: O
: }/ T2 m7 [( g# h* j% U

& \% s* U) S7 m2.矩阵拆分
7 h+ Q" K. |( d- O
8 i' u3 K+ G# S  L. h" B* }& H

$ z+ M. G7 f+ D6 x' _. u' a& c利用冒号表达式获得子矩阵:
$ G$ f- F6 t$ b) I& b, m: D  I2 M
# _/ G7 Q) l0 q

2 T+ J  }- c* l0 T! E( ~# q(1) A(: ,j)表示取A矩阵的第j列全部元素;A(i,: )表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。
. J# I1 k4 {, Y" Q6 x. I& a
# J+ n6 f0 l$ {% P% n" r0 @8 q

8 p2 _4 A# r' u+ F/ t# V) O(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表示某一维的末尾元素下标。
" _) a$ ]; A% [' z5 S2 Q3 E# J3 z7 ]$ O5 U
& t  w2 H3 m0 P8 P& f
利用空矩阵删除矩阵的元素:# u% R. l  Q7 v+ G

- O# A4 d2 v/ O2 G# ]  K

2 a" ^2 |4 w; Z" }6 o在MATLAB中,定义[]为空矩阵。给变量X赋空矩阵的语句为X=[]。注意,X=[]与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。
1 ]. d9 Q3 v3 `3 o' T) i! q" [7 e$ G
3 m1 r- t+ u% O
: |* k4 ]! x* u
3、特殊矩阵; o- p+ P' M, U% n% k
# E# [0 m7 {6 [# u/ y0 I

" @0 J! ^/ N0 ~6 I5 t
游客,如果您要查看本帖隐藏内容请回复

0 |9 n- G# p  K! K' A: Q1 F& N1 A5 S8 E, }
3 y$ |6 V* a, e7 ]8 C

: J3 _9 d" B0 P) q8 x
, G* y; `4 _, k, b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-24 02:34 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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