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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

4 R( E# }7 U* y: C0 C# K" b) ?matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。3 M4 \5 n' {- L; I( ~
全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.8 z7 S+ I$ I1 B& V

$ o  C* j  {) m7 e) H' r0 W) tMatlab常见的交互界面- M9 H  B1 M% w# C
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。
% P1 A& ?! ~7 r2 o( S2 ]●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。
9 H! z2 k/ G7 K8 K●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。5 Y6 ?, c, X- |1 x$ a) Q
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。4 q( `/ v; d- A- P3 l
0 u$ q# i5 u- R( E' H% x( Z; o
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。* m2 \, q3 \! m( ?9 @& W8 Q, G% S
% ]" z* i( ~- A0 g7 q8 ]0 a/ R( n, ]
命令窗口标点符号
+ T9 v! D& \, ]2 D% R●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。  a0 C* F; I. m. ]3 b/ r: U1 g' U# n
●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。# M- U1 |" w! N  H: ^) g- p% Y
●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接
, u* Q' n4 D; a! h" \5 S( q●其他见链接
- y' }' j9 J/ g- L7 r' Q* \
/ p4 s" r$ j7 f2 m: }& rMatlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。
+ F9 t5 k: x/ W! R9 Y4 I" w
. J' t0 n. D" x$ LMatlab中预定义变量:! D% c2 O; v' l
ans:计算结果的默认名称
- V) v+ M. ^+ F$ reps:计算机的零阈值
4 H1 n6 x# X) cinf(Inf):无穷大,-Inf为负无穷大9 f- X: h0 p: t6 k
pi:圆周率
% u3 r% R9 s4 x3 O  sNaN(nan):表示结果或变量不是数值,无法定义的一个数
+ D% Y0 I# Z( |; h) u% y虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。( ^. A" S% X9 w
3 u/ e% z, `. I+ y7 G
Matlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)/ y3 X6 A; r+ D; s
搜索过程:如用户在命令窗口中输入命令myMatlab
5 R" V8 Q0 C* i/ _6 G          ●是否是内存中的变量
7 N+ \" C* \0 |. o2 K/ F          ●是否是内置函数/ d! p9 |, J4 S3 h+ k/ J' W$ q1 v
# K- ]7 _  ^+ f. @0 A/ e
          ●是否是当前目录下的M文件
- m. R" M! q7 ~$ ]1 g. P          ●是否是搜索路径下其他M文件9 D5 y  Q6 `6 \# J+ M5 ?
搜索路径的设置方法:
0 o# c+ L' S" y: S! ?+ @0 t. s7 f          ●输入pathtool命令或path命令! K( Y1 o/ f5 G& D& Z( ]
! g& ?$ R0 i/ E$ m
          ●matlab界面HOME->set path
6 a+ u3 ~) @: N3 |9 g
9 B9 k+ ~% ?" Y0 J( t/ J使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。9 T& c- M; T7 L' m; w
* T' \7 I% z, H3 o; G- h& \, ?
查看变量:1.命令whos  2.用workspace窗口
- w& R$ S! }$ |3 r9 s: q! P2 w. L7 y4 @3 M2 Y+ z! W2 [- Q
删除变量:1.命令clear A; 2.用workspace窗口
5 y7 Q; q8 V) F" `2 Z. U
* q( `- d' g7 U4 r! H.mat文件是matlab数据文件,保存工作空间的变量。* M( m) q" j( c% W  [. h

, z  g) p1 U; X0 B) g. \% `1 e$ VMatlab区分大小写。
6 x& Y4 F  ~' i% X  U7 B  M' u* I5 W( D5 F5 O% N
Matlab中的变量不用声明,不用定义,拿来即用。
1 J0 D$ {/ S) a2 C) L
- f4 e) x% |* d6 B; d; M输入一条命令,回车,就表示一条命令结束。
! D5 J9 i4 p# n+ b/ P
' F7 J- z' U/ c: K' FMatlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。
  q! d- M  `5 C& K9 `! @  h
! M  i  V, l, F; M% b/ m1.1 M文件# _' E' I( Q. \% v* a% d
M文件分为1.M脚本文件 2.M函数文件
' Q1 g3 o9 F, M% d+ o. s2 ^% P% Q+ x: D
M文件必须在搜索路径中才能运行。* g' G  d& J  U9 Z+ L

  M1 m5 f/ _7 Q+ I0 y4 D1.1.1  M 脚本文件
0 L7 J6 F  u& v  l. R1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
; y" ^( E) Q# f; f7 s2 V5 l! n9 w  E& [+ t) v0 `
2.M脚本文件执行是直接输入脚本文件名就可以了。0 z6 |6 ?! D( [* B, d: K
8 [1 D: s7 e6 N0 N' l  a
1.1.2 M函数文件* r  ^' b- G/ k9 G! Z6 N6 W8 O
格式:
! G0 N% r1 i, [% X& F; |9 ^' f" A" [) e. B% p
         funtion[输出变量1,输出变量2…]=函数名(输入变量)
0 ^. \$ v1 w! Z3 C( c$ {) M- a) ?. `8 M
                          语句;
* ]$ K* ]+ a* x% f; y: w4 G
3 N, W! t, K  |1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数
# M3 U. ]; c( \+ E6 k
% k. a8 G' a- n. M& ~2.M函数文件的组成部分:
' t1 z7 t/ p# B
. m; I! ?7 R  a, k. y组成部分
7 Q& ^9 D) ]3 d2 _7 J1 K7 t( e  ^" o/ _- T, [0 r7 Q
描述2 m) r. R8 Q+ i' U! e& y( |3 M
: D* |! }. F) |7 p6 {+ G
函数定义行
) i# U, [0 G' S$ p" [9 i" _# q2 e) H$ o& s: Z  d" W
定义函数名和输入输出变量- @, E" [! x$ \4 \& S
* n- ~. I3 R2 ]. J
H1行
/ U# p  ^# t4 }3 i
* {& ?* x% V. f4 b4 B描述函数功能,可以用lookfor命令搜索到
9 `7 v$ v" j  T  t5 X  ~
0 Y" U  Y' t  m! [1 O  }帮助文本(帮助文档)! {& v' E% d3 Z8 x  k+ ]8 S
( L( T9 d3 p2 P
跟在H1行后,用help命令调出,详细描述函数功能
. Q  p5 G" n  G/ h" ~7 i1 k$ N* K! t+ [9 @% }* ~! f
函数体
' h8 n' z& f2 L$ H1 ^; T" O7 s. X
实现函数功能的代码% N2 C1 k: L' t5 }) }

3 l: @/ a. e8 \9 q  z4 l注释6 S; b; k& c, K3 w& p. Z; d. t
/ M. P! T: t* X6 [6 w% t- o* F

1 {$ @) L/ Y; w# c. J. k
2 |- [" F7 T7 j8 k  A' ?: S( s4 n
" a$ F+ B* }* m2 U
function [ output_args ] = myfun( x,y )0 Q/ @# W  `4 F( E3 d1 q( A; \0 @
* ]: ]& @% J; M  \7 ?( ]

" G- b# ]4 F: m: m
% a4 ?2 {, `  `& \4 FH1行. F% E: K; t$ d

, |7 t" l" p; o0 a: |  
" b2 M! a# `( o' z& U% m! sH1后的帮助信息$ O& j; X, Y9 B- l/ Q  f5 ~6 k

) c: ^3 K1 a2 ?9 e5 q* x
# I! q1 n& t, y5 @! H& Y%caculate2 N/ d8 |5 A2 R
" w+ e! t8 |' u6 G" h' a1 ]5 @; |
%  if y does not exist,return x
% h, \, h( V8 x8 N9 j" q* j/ v/ a  q) S- X% N) k. E" o& e$ F
% if y exists,return sqrt(x.^2+y.^2)* U1 R8 U' }9 }3 K/ B, t$ v
# y/ s. A; \4 k$ }
if(~exist('y','var'))
6 y9 p8 Y6 m; k7 s- H3 C+ j0 A( b
  w9 d5 K- Z, e6 u6 o    output_args=x;%y不存在  c: \5 E5 H! Y; d

8 j8 x; g5 n* G" f) aelse
/ I3 {; ]6 F: I4 }9 b8 t* o+ @, ?2 b* g) ^8 M
    output_args=sqrt(x.^2+y.^2);
+ s% A/ `7 |. a& C8 F, _
3 f4 a( I3 }7 b( S0 w; a) d) f
: G6 f: F' G$ o2 l, z! Y% O; A; E  k3 v% `3 k# ~
end9 d8 n, {0 [2 a; p! l5 {
1 ^5 c- s& w, O% K) h
命令窗口:
! q  t" L7 N6 I/ b* z" K5 g& P7 h+ M3 Y* K8 Q
>> myfun(9)
( _( z, ~+ s/ r# }
9 B- X# i5 Y6 ?* q/ M
& g) d! k# ]6 \( x7 K/ R8 {: w" Y* U6 B* i+ b8 J% C+ R# k
ans =$ D0 V, p* j8 w$ O" c6 |7 O

7 o+ h' i% L. w
- L! M5 Q5 ^2 x( n) S0 t, h
' G$ t6 Q$ D$ |1 ]/ [* R     9
- n+ s9 u4 |$ l+ j
7 o+ d# K8 e, d1 H . T: S) z  X* Y8 r7 m

4 z, G% D4 d7 X. e>> myfun(3,4)4 n4 W0 M: x/ ~7 I- }' ^
0 V, m( A  C4 J7 _) E- f( Y$ |: j
2 Y  }7 l7 {0 {) G# |8 b

9 T# z1 P" k9 u+ U* q1 x# d# {ans =
. n5 }% G5 P: ?( Z' b6 Z- l9 h: F7 m( |+ m5 F

: k0 B) N% `) b+ w4 S6 o6 F
6 b% M2 F2 ~# j3 I0 x3 ]( ]     57 k& B6 u/ a/ s+ X: v+ n
3 j$ D" F+ [$ m, i
>> help myfun  %帮助信息
- ]8 L4 E0 K! A+ Q1 |8 `, E0 j5 b; @8 L  `. t
caculate# Q+ }/ T+ Y. c+ |6 ]7 o
3 V$ P' @% P: W' }7 i( |: Y* o
   if y does not exist,return x3 C4 w7 u) h2 l- p5 j5 N

3 B4 F. l; l% }8 N1 |  if y exists,return sqrt(x.^2+y.^2)
$ n5 a) {. J5 k; t, D
7 E- |7 g5 X( ]+ v函数体中的语句如果不想输出结果,一般最后加上”;”* e) R$ f: P* Z3 |% s! K, v
5 Q' m0 d7 h& K6 q- z1 @/ V7 p
3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
# l0 W# ^; a  b: \7 d5 X( W: e6 l, Z) n6 H+ D2 k
4.M函数文件能够被其他M函数调用或被其他M脚本文件调用。

该用户从未签到

4#
发表于 2021-7-28 11:21 | 只看该作者
.mat文件是matlab数据文件,保存工作空间的变量

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 17:52 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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