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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

* X: {+ H. h9 o- C2 x' M5 smatlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。7 y9 }* H( }* k0 f' L) u5 j
全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.3 g8 H- }& @3 _) r. a1 l

  Q6 O9 s4 f# }0 c+ C+ `3 YMatlab常见的交互界面* X: n1 v5 E) z" Z! G
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。. I- }, T8 w/ Q/ [# j. a
●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。: w* p: h/ x$ y# i- u( e8 N+ D( V
●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。" ^! w% s4 ]" R& u! F
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。! H- T3 W( h0 A0 `" m
2 p; e! l  y8 ~) `1 ^
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。
& K* T: k9 b/ l6 c9 y/ R- T& E" M9 G" @8 O# _! K! G- m
命令窗口标点符号
; x; Y) S& |& T/ [. w●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。
2 [7 J* o, n( Z* h●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。
0 m8 A4 @/ \. _* g7 b; O* S●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接4 l; X1 N2 w$ ^5 c; u4 Q* e
●其他见链接
1 ~5 P6 I0 ?, s& }0 {/ D* g; i: |9 {% W6 ]$ |! p& ]
Matlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。
. j5 b. K  B  q# d( f9 A: M: e- g% i, |  b0 {! P
Matlab中预定义变量:
0 {$ b% _$ S3 y1 ~- m, C% H; vans:计算结果的默认名称& [% R  T& j% C$ L: y& G
eps:计算机的零阈值
, a, u% ^, f6 t' U3 `inf(Inf):无穷大,-Inf为负无穷大5 s1 [, z- s6 b9 L% Z' c
pi:圆周率( X( Y9 U7 s# n+ t6 B' N; m8 O
NaN(nan):表示结果或变量不是数值,无法定义的一个数  e8 p5 t! w. w2 |
虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。
3 ~1 R8 d6 X5 G, d
7 H+ b# p' b% s4 H& V; e: H2 fMatlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)
8 J/ P7 e) T7 X; S6 m% ]! g8 U搜索过程:如用户在命令窗口中输入命令myMatlab) L+ |, d6 [% a
          ●是否是内存中的变量
- C% q$ n1 F- ~+ C          ●是否是内置函数
$ J% T# \! ]. o+ `* `0 d
5 N! C# G1 y( t$ Z0 e5 F          ●是否是当前目录下的M文件
0 }! W: @& r6 T4 v5 ?& d. j          ●是否是搜索路径下其他M文件
7 f5 Q! V( o8 r* Y) ?搜索路径的设置方法:
$ Y% K5 G3 I% y, w6 N1 q6 U          ●输入pathtool命令或path命令7 t7 g; l% W( |9 \) t6 C( b

, w: m% q$ T/ P. X% q          ●matlab界面HOME->set path
; u1 t0 B% i! F
' i0 y  p& B% z/ Y. X使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。
! L! F( s+ t2 v3 ^2 ]% r' H. i: O4 ~- n) ?- |
查看变量:1.命令whos  2.用workspace窗口& ~, V$ l7 l- n& M9 T0 N* b( D
% P: O. q8 G2 }5 v3 h7 `$ E1 @
删除变量:1.命令clear A; 2.用workspace窗口
$ \, s) X6 v' Q% F
7 t' ~- J7 @* n# N.mat文件是matlab数据文件,保存工作空间的变量。
9 G7 ]0 R4 N( d7 k5 d) E  f- H9 x# M/ W
Matlab区分大小写。
1 W% G+ Y1 A8 a  i# M" r9 a: _
- d8 U0 `3 q4 A! C0 R! oMatlab中的变量不用声明,不用定义,拿来即用。5 P6 o. G4 D3 E! Y% V

- w# P' d. M" D+ V7 B. X5 u输入一条命令,回车,就表示一条命令结束。, j, {5 l2 s: |& Z  r4 \6 _3 @

7 Z* m  O. g- Q# x( L" L& f- zMatlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。* T/ `7 h4 k% c0 @, Q! g2 f

  M5 k* O1 M4 {/ k  i1.1 M文件! v+ W! F4 ]0 i
M文件分为1.M脚本文件 2.M函数文件7 Y9 X* f; d# `! V1 l

" w( Y4 b% p* S% a. Y: d- P. w, L: DM文件必须在搜索路径中才能运行。9 H& C. m' ~0 @) i& U% s

" d- m# M3 p% o8 @) g/ S4 ]1.1.1  M 脚本文件& _7 w% V* {. `  m6 L- e; T
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
9 r+ ]0 A' z; f6 u/ [' i# u& @. V  e9 Y% p8 @! _+ D* |
2.M脚本文件执行是直接输入脚本文件名就可以了。
9 t4 G  E% O9 W9 B# S' _) T6 \, M9 |  |( }5 K# t7 U; y: X4 u
1.1.2 M函数文件8 u# n$ z9 V6 ]' e/ A, E
格式:4 C' _# G/ x4 A9 I( Z

' W. p, ?3 x9 l' H         funtion[输出变量1,输出变量2…]=函数名(输入变量)
- e6 i) S' A" L
$ }, Y; [: A" d3 ?% {. Q8 v                          语句;/ Y) O% f% G+ H
! h1 {8 q% A# x; h7 W
1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数
0 O6 ^  V' V4 C# r+ h5 `- M: q6 t. P& t' _- Z) ^% |- b. Q
2.M函数文件的组成部分:3 \4 u, |" B$ k2 [* c0 W# A

* q6 h5 T' ]! B5 ^; ^. w/ v8 f组成部分
9 ], Q! o$ k6 m. X  w- {: @4 x. K5 k0 |* g: C) }& V1 T' A, e& B+ _' W
描述/ Y) C$ m1 W2 e% h/ B* s

; ]9 F) B1 ~: \0 q/ L0 _2 K函数定义行
' F5 u9 X: {; e: C, |4 _6 Z7 E4 j3 C
9 N" t6 K0 q. z定义函数名和输入输出变量
. k5 o: N! v! d
3 N- ^' c  p- C4 j2 [% H: L) l, n/ `H1行
. O/ Z) i& r5 y7 K: [9 A; ~; ~: @2 k4 i
描述函数功能,可以用lookfor命令搜索到
( F! \: l) V) `9 q5 o4 l3 @- u2 t6 |/ x5 d! d5 |
帮助文本(帮助文档)
: f3 o5 E) b3 o. ^' t  e1 D& ^2 l- E% U1 y" [1 R
跟在H1行后,用help命令调出,详细描述函数功能
2 X( b- p+ R8 _3 [
+ w: M* v2 ~+ z4 _: T! d1 v函数体5 t& u! s6 Y2 k- S9 y

5 k! P8 `5 u) t% F' M3 W. j实现函数功能的代码
. M) |9 ?/ P' a& m6 k
2 ], I6 R( B8 S, }. Q# B% ~注释
" I  x  s, ]* j7 `+ k5 y; w7 l* u. \8 N5 b4 j

8 J0 c/ N& j1 @1 _: K ! Y% T! ?! T' \8 _
$ e5 C/ V- Q9 C' x4 j+ I* z$ s

7 A. q+ \' [  `. \/ ?9 g  k9 Nfunction [ output_args ] = myfun( x,y )
9 F, n1 W  |! R' Z0 B" m0 g5 u4 f
4 {" v! s  C# Z: X" G
+ Y0 b5 F6 f  Q. M9 F) S6 y  A& x3 x1 K' e( X
H1行; a2 R) l- Y: g( k0 L0 f- ^$ C

0 H, @+ q) Q. X" K- Z2 g  + I6 ?/ M7 j& K! f4 u: [+ _
H1后的帮助信息8 l1 m, Z+ B/ x* j4 ]  ]) u) K& e

3 }& q" p! N' M2 ?* e
% K( n# [* u" w4 v% i8 ]: T%caculate% B* i; b6 j: a( O( e* @$ w7 J
& X$ x  t! q1 T; J1 |
%  if y does not exist,return x, Q) V) b0 k/ d% G6 \" }
2 j, b$ L+ z9 a( _3 G
% if y exists,return sqrt(x.^2+y.^2); g- U8 I2 \1 \  [

  j4 z9 j! H! F5 {. l5 z$ Fif(~exist('y','var'))
3 I9 Q) Q% ~; {; s9 a! t% W2 i0 d) Y2 b
    output_args=x;%y不存在
% X. v" m/ A( M+ _  a) y; @8 G
3 ~7 l/ b& p: G4 @( V' ]% felse; o0 l, s% O2 _! c
1 P, G7 E4 I, c2 |
    output_args=sqrt(x.^2+y.^2);2 \# W1 w- E) F& g9 V

2 E* x0 o: K- c. b5 x6 V/ t. `6 \
/ A" J0 G$ J" @$ c# p; u' e6 ]& f  y: {! f' D" ]  C
end+ X4 u5 E% {/ A7 s0 j) f3 i

( J) h" f5 h" P, E8 m- w% x命令窗口:
9 m# G) Z0 S0 }9 `' C. A$ B/ o4 C) K
>> myfun(9)4 D" [9 U" w' K: b
3 [1 d% s) P; b$ ~4 N
6 T* ?! R' I$ ?0 f/ D& i

- V6 W/ Q  R0 ]2 ]! U; |' J; pans =9 _4 Y8 P% M7 B* X; z; Z
0 U8 U6 ]  r7 k2 x$ ]8 [, q- @

3 C3 Y  X, g: _+ `  `
: L8 X9 _1 a8 y, z, Z# F$ d     9) ^1 J4 H6 f, `8 _* N
4 @* m$ W# q) C  A" n+ |% E8 g

3 i8 f  z/ I! ^8 @* X! \" C# T& W3 t. R4 t* t
>> myfun(3,4)
& @0 W* u+ t. `; I" r3 g+ b8 z1 G+ D6 x* K& Z- B8 j4 D( T  C6 S3 i

2 {7 M/ F& I+ [" S- l. ]2 }+ x0 x' K
ans =
' A+ N9 I3 |3 m0 ], \! g) B, P5 m/ @' j( R+ R& W
3 [, Y# r6 O* g5 E$ W

3 k/ h2 K7 y4 B3 K$ h     5
6 I; K6 u& w6 ?! J- J5 M$ c' \, o. d' _- t3 K7 x. V" k" L
>> help myfun  %帮助信息
5 i7 K+ a8 W4 S4 F
% |5 T6 Z$ H5 l( D! y caculate% w  j9 {: b" W: Q  H+ o8 Q% k2 M

  J: |' N2 h: I+ l9 k   if y does not exist,return x
9 f2 p0 _1 E4 ?, \/ P. S' z1 }: [1 ?' W* b, e  }
  if y exists,return sqrt(x.^2+y.^2)8 `% x/ l' t4 Y$ e/ z. c0 x

" ^: E/ y# c1 g7 M( U) w2 T函数体中的语句如果不想输出结果,一般最后加上”;”
# t) G) C  ?1 F! I+ \) e( s  u: H; ]  y" t4 I) Y9 P
3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
& R; Y( F* X* c/ ~
; S" @7 Z+ Q0 o- n4.M函数文件能够被其他M函数调用或被其他M脚本文件调用。

该用户从未签到

2#
发表于 2021-7-28 11:19 | 只看该作者
matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体

该用户从未签到

3#
发表于 2021-7-28 11:20 | 只看该作者
Matlab也是一种编程语言,被称为第四代编程语言

该用户从未签到

4#
发表于 2021-7-28 11:21 | 只看该作者
.mat文件是matlab数据文件,保存工作空间的变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-30 04:57 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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