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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
8 z7 A2 b7 r: b- z* Q& ^4 K
matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。
+ i7 q& v% `5 ?: n* ^2 s全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.
' K0 _9 h$ |* d) f, |* o
/ u/ K5 B7 N) AMatlab常见的交互界面4 o7 G9 E. u- y1 O; F# L( ]; I& l
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。
. M5 z( J1 g; k" a' K●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。
. [9 L: T: o. _●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。  U/ z2 k! L2 j. D* ^% v8 L
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。
" P9 O8 H2 ]/ H  N* Y( V0 @6 e. u1 ~0 P7 M' a
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。7 o/ L6 x! Y$ v- x5 u* b
5 e# g- c9 Y( ?
命令窗口标点符号
- s; e  I  ~- z- @* y7 R; I  j●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。1 ^# e3 h. \8 P* f* i" r
●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。
! y6 E5 R. t8 d: L# h8 ?. ~8 Q! D●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接1 t- o$ ]' q% T& H! Q9 o0 W
●其他见链接
; I+ q- U9 T) N) ]
7 `( K  a/ {& Z' m5 Z1 q1 z$ MMatlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。
5 c8 y. M7 n" g2 t, H. Q6 y  n6 E* _3 O# `/ ~; [
Matlab中预定义变量:1 l- w( X& f, m5 `4 t
ans:计算结果的默认名称$ j2 {/ |& u/ `3 A* y( e
eps:计算机的零阈值  G) F+ n$ J" A$ o* y0 ?9 r5 J$ }
inf(Inf):无穷大,-Inf为负无穷大
; c+ s3 w+ u' Fpi:圆周率
. o9 f  O/ \' U9 _; q6 ?NaN(nan):表示结果或变量不是数值,无法定义的一个数
, X, I+ J9 @' N' K/ `7 N, K虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。
+ I: A4 ]9 |: l$ }2 z
+ g; @* C! i& N' t8 W/ f4 CMatlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)
' ?- A+ Z( N; \, Q+ u搜索过程:如用户在命令窗口中输入命令myMatlab- D9 A9 [0 u, w+ D% o7 k
          ●是否是内存中的变量
1 V3 Q3 c. D" F          ●是否是内置函数! W# ^5 N* _  r- X2 a) r

5 {7 D+ p$ I9 o( a5 Y          ●是否是当前目录下的M文件
3 d& E! M9 g6 `) [/ P          ●是否是搜索路径下其他M文件; z4 l* A4 n; d0 Z$ u+ y6 K8 g
搜索路径的设置方法:& _! ?& C- j. p7 ~
          ●输入pathtool命令或path命令
/ j/ h) E6 [/ }( p, z: a  o- M+ X# \" I
' M. M. B2 E$ B+ ?8 N! U4 _5 j6 j          ●matlab界面HOME->set path
# K/ D: I( l- @$ A( u
7 f6 g2 b5 c* k1 d使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。3 q+ w  u& {- Q6 I* D

* ~8 R" b4 b! E查看变量:1.命令whos  2.用workspace窗口/ ~, E. ~# ?6 O" ^
# C- F( w# \" O: g) D- H$ x
删除变量:1.命令clear A; 2.用workspace窗口
- f. j# g! f; _
2 \" Q" o, [& X9 t- V) @.mat文件是matlab数据文件,保存工作空间的变量。
: o* }/ @" @2 M# C0 E9 @! o% }0 f/ X- ?" h! y8 |
Matlab区分大小写。, ?* _8 j# U* g9 i/ H( o! Z* \

7 D9 z! m" w, d& b  XMatlab中的变量不用声明,不用定义,拿来即用。
( y3 f$ `+ p3 |: m$ o* h  e+ h3 a5 t: ~: M# l+ |% L
输入一条命令,回车,就表示一条命令结束。
/ X8 f9 A; K2 r+ w! f8 t0 M3 \5 ~8 R1 c: r8 l5 ^
Matlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。, I2 f: b1 P- i2 a4 v! u. D9 z: |

4 g5 L, o: |+ r$ e1.1 M文件4 v! D: r, g8 f, a- q
M文件分为1.M脚本文件 2.M函数文件: Q! h* E# {4 f

% z) o' ?6 |; l' v! P* lM文件必须在搜索路径中才能运行。% C! v9 Z- |, K5 e

; T3 y! ~  _- h% k- O1.1.1  M 脚本文件( Z6 e/ B- ], w: a
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
9 G8 M2 J# Z8 E$ \6 l" a; M$ L) v7 {( m  b
2.M脚本文件执行是直接输入脚本文件名就可以了。
2 Q" H) g: O- o7 l3 l& V4 @
; b/ x( A, s0 }8 n3 L  H1.1.2 M函数文件2 q, D( a6 p' ~# E
格式:
4 l3 p1 T8 M% ~$ ~& m" S6 ?) w- R8 g) A. |+ b7 i) K
         funtion[输出变量1,输出变量2…]=函数名(输入变量)
  v5 |! {& A5 P1 ^% P2 u1 G* L4 ~
+ y, @8 ^6 _  n+ E0 M0 D' p                          语句;
8 }6 K5 L- x! x' h9 D$ R
; C" h# U6 z" c, q& l/ s3 |) ]1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数( _+ O8 Y# s7 ]2 j: c
& p+ R+ l& n% m% `* b6 k
2.M函数文件的组成部分:" d* ?0 [3 r, g) ]' H% S3 K( v
2 @5 ]0 Y7 E0 H; }0 O6 U% B$ x
组成部分
$ R# h* p, w0 s6 P  _' l. A& k+ m! R+ f8 G! b* ]  d- ?6 m
描述
* o4 ^0 {3 H! w& }2 h; \# Q8 h: @6 m) G4 G2 I# c6 }0 O, z
函数定义行; [3 A8 S  D; U. O8 n

% T2 m! ?5 p* z" B! ?3 V2 E定义函数名和输入输出变量0 f& Q! A3 g2 B; `6 A) U' x( |

& ]6 j+ `* Q# r$ T+ ?H1行7 n; i0 _9 d5 B2 g9 K3 i
$ P  ]+ I. i. c, [
描述函数功能,可以用lookfor命令搜索到' ?/ i% u& T7 ?  I

8 a6 @! t7 S4 u+ P% M; n帮助文本(帮助文档)
6 r, c) f. V% x4 W' d
' Q3 }1 @3 ?6 Z跟在H1行后,用help命令调出,详细描述函数功能
' H: L% I# A: r8 Y# S" ?; [3 t! J- N# V0 F& V3 M/ p
函数体
5 m9 w& Z) e+ z" w, B2 d  U" a6 s: C
实现函数功能的代码
5 z' e1 Y+ Z) W  ?# O  O9 d, n1 c4 n% p' a/ ~
注释
4 t  Y; B- v7 Z& S! J. F7 N
8 x! y& _# x; K& G. w9 e7 k
0 t5 g& {3 }0 t! E7 h ; W" W) B2 u/ Y9 l5 T8 v8 P
' F0 q) X3 X$ ?) h# F5 G0 y

8 {5 l& m7 v( {. F4 mfunction [ output_args ] = myfun( x,y )* O% ~+ B5 W& Q8 Z, Y6 \
) f4 K& [$ i  l( J( L3 k

6 {/ o) O) }" p) O4 Z. w2 K9 f- d/ u( y3 z- S
H1行
, j1 c* c* _4 h4 G
- O3 [: V$ S6 z! @7 ]1 q  
0 L5 a0 o) f* y' z# E3 ^H1后的帮助信息
: B+ i3 k/ b+ B. g  g4 N7 L/ K( ?3 Q+ S( V% N' P7 H5 ~

# @1 e; l- A, ^+ |5 \%caculate7 @' o  Q) r  o6 a5 ~6 F

9 }% w4 \2 s0 G; @7 a) g%  if y does not exist,return x$ v; J2 U( x8 I9 [9 b0 I
& U) D; F4 ^7 W7 q1 ~) b2 x" h
% if y exists,return sqrt(x.^2+y.^2)
1 F6 l, l6 }( D3 b
- u9 t1 x& z; x" ^: nif(~exist('y','var'))
; S4 ]% U2 ?/ J7 W  Y. J% M3 G8 u, n# n+ v. k  w
    output_args=x;%y不存在
. P- ~$ _5 T4 n' `/ p: a3 a. ~6 f1 A6 o
else
# w. o! y  Q9 m5 }1 ]3 C! N/ I, c
" F7 }/ ^8 q  |: M6 x    output_args=sqrt(x.^2+y.^2);, q$ M( t! c, o+ U% G4 f

# X8 k+ [; H4 y- o9 d& t
) L! m  [) M8 W0 V, o! X% W' t# I" r4 M" }2 C6 o
end
4 [# p1 M, y6 h- C2 c0 R/ Y. k' l8 W3 h% y
命令窗口:
# ^0 K+ ?% `' I1 `5 z; M! J0 s2 x& K
>> myfun(9)
( ]: [& ]- h9 x+ e) e5 p# T3 l9 A* S& d% d
6 Y- l( U6 D/ E9 w. W8 `! [6 L
) o0 s7 g# f+ E8 |
ans =
4 B; ], g) {* G3 w9 t
& `0 p) _! x- i9 r' g- V/ e7 A
( s: x6 c' R8 n+ m+ y1 i' J' Y5 F5 A( p3 P  E% C
     9
$ K9 g) x0 L# m7 r$ I6 l& y% Z+ B1 m  k0 b5 R" I
: p' h! @. y- t( s) M% A# a7 j- q

2 s0 a$ Z. W0 \2 h' c( c! H>> myfun(3,4)
3 t# V. C& {. W6 o" R; N
4 a: K2 d2 }" B: d. j
0 n6 q2 o- w' X
% j1 K% K2 F6 `- e/ _$ \ans =
& Y' ?" c8 U' u7 \: o; ^: z" J! }
1 y: c2 X* ]1 _& B % i' x# L: {2 r* P- _) E5 Q
, d# i, y# ?3 l' c4 s+ h; t& C
     5
' s: h; L6 `( T" W
9 U+ t* L6 T& i" M: j>> help myfun  %帮助信息3 b+ c- E1 E0 y4 F' [4 l1 B' k% p+ p
5 N" L7 C3 F1 ?$ `( M5 F/ I
caculate
; O' {/ J5 f! k% \7 s
, B3 s% t2 \+ `! `+ s4 x, D   if y does not exist,return x
# @( [9 J7 {+ |  R- r! E* B6 W6 C; j
. Q$ ~* g3 \' B  if y exists,return sqrt(x.^2+y.^2)
& z6 j$ d: D8 v
. I9 q. o) O- ^4 Z) T函数体中的语句如果不想输出结果,一般最后加上”;”
8 _% F$ y2 S+ ?0 \  t1 M& ?
. ^* A& F) V3 ]2 |, \3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。; v+ _  p: E- ~' ~" }) J, u& U
7 w/ t; S/ P) j! {+ s2 ?
4.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-11-23 16:46 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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