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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

( l. U0 e  w* X- A: rmatlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。
2 v5 T( g3 ^' W0 n5 |全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.$ Z1 M8 D) N1 E. d" _
; V) S( @/ M& u5 D, A: ^
Matlab常见的交互界面% r4 y( U) f# d7 Q5 N8 e
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。
6 o( t5 r" R& J/ L/ A) {* L! q4 T●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。
5 ]' \, x7 g, `9 H8 ~) L6 z5 W●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。& f' x$ ^" d& Z% N; O
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。6 Z* U- H. K) _+ M. h
, E/ w' E! ~  J. T; L* J: x
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。
  }+ Y2 F, S* W$ \2 O( U; g8 ?# R- h7 N6 i; X- I8 f
命令窗口标点符号
) S5 _, R4 d' }- }9 v●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。
0 m/ Y5 r! P5 P7 |2 I●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。
1 K; f) g. V! S3 m# S; ~& p●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接
* Y9 {& i) E6 V4 H●其他见链接1 W( j* ]4 A9 e& p
6 t! T; ]2 H7 g
Matlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。( B  }& s: {& H/ d
& l9 r  n; I# |; B
Matlab中预定义变量:* M; o- N2 a$ ~  j* |/ U/ ]/ N
ans:计算结果的默认名称& F# F/ L7 @6 m/ @' P4 F
eps:计算机的零阈值" s- K1 A1 r  g& _6 x) S* @
inf(Inf):无穷大,-Inf为负无穷大
) ~4 f1 X7 `2 _2 Q5 ~+ opi:圆周率5 s/ U- r8 v) ?  ]. B
NaN(nan):表示结果或变量不是数值,无法定义的一个数1 A+ d' {% L3 Y4 c% c, L; a4 S5 p
虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。
' f6 E$ F' S+ j, n1 |
3 t( y2 _" K/ EMatlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)
, D; ~1 M+ x: w' V4 A! Z) N搜索过程:如用户在命令窗口中输入命令myMatlab
# S! F8 f' B+ c& d# k1 n/ q          ●是否是内存中的变量5 l7 W  f" D% _$ }) {3 y5 q9 ?
          ●是否是内置函数
8 X! {. l/ a7 p
6 O% ]9 @# j; b1 l; ^          ●是否是当前目录下的M文件0 [2 A# `4 L( P3 ^2 d
          ●是否是搜索路径下其他M文件
  X$ }2 n8 r6 d* U9 @) |搜索路径的设置方法:. O. G4 i5 i* `/ }, m1 `
          ●输入pathtool命令或path命令+ E5 I$ {$ `) L5 @4 w
9 P7 i4 {8 e3 _9 k, T
          ●matlab界面HOME->set path; F' t( {( {& [

* J7 G- [# h0 r* T. ~0 O1 o使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。% z: s, X; Q$ Y+ T
: Y8 I' s8 G0 u5 W2 R9 U! f6 i
查看变量:1.命令whos  2.用workspace窗口/ x: Q0 Y, o# c4 x

9 f- J3 W' r% I8 H% p删除变量:1.命令clear A; 2.用workspace窗口0 \* y& ^' i) h5 a- L% A, Q

! ]) e' I1 S& ^7 e1 E, m.mat文件是matlab数据文件,保存工作空间的变量。
$ r) a: _# f, d" j4 \7 f/ u5 x/ E1 a8 r. d  N0 @+ d
Matlab区分大小写。
5 k/ t9 ~$ C) G; [6 [4 H
' A5 g0 S; `. |) U0 H: kMatlab中的变量不用声明,不用定义,拿来即用。
4 F" q( f% ^: j/ Q; K5 ]
) k( ]2 p( }. Y& d输入一条命令,回车,就表示一条命令结束。
8 q5 D, ]7 M2 I2 m4 B- M4 x( a/ o) b
+ T5 [* W4 N! T2 Q) }3 GMatlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。" Q9 f* [0 w$ W3 ]" l: P
; L  a) y, d4 ~  h, s% s
1.1 M文件
/ O9 ?* t$ N, h  I3 XM文件分为1.M脚本文件 2.M函数文件6 d  R- ^) p% \& M% q. U8 @
8 w' q6 A3 n9 N2 s  R
M文件必须在搜索路径中才能运行。* R  J" m: |! [* K& N4 j& J

/ i. m% j: k$ p6 J! V5 m! N* Y1.1.1  M 脚本文件3 R( N2 z9 D  b4 M8 d! r
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
3 q/ b6 N/ O) \- a5 }3 l% c
, U8 g7 _+ Q6 v! Q6 x" o2.M脚本文件执行是直接输入脚本文件名就可以了。2 B, L3 X; A% D3 U- ?
8 _+ ~/ D( D8 Y0 R
1.1.2 M函数文件
4 G4 p6 r0 v$ p$ O格式:
  j  t" b, D, t: o% g" f- s( u3 S- P4 U6 D9 d2 Z8 T  u
         funtion[输出变量1,输出变量2…]=函数名(输入变量)( t* s# ^& N( t2 A8 T0 J1 R
+ n+ X$ \1 x- h. {( B6 d8 C
                          语句;" L! ~8 e( \5 w2 n  w7 ~. ~
# a3 Y9 T" H9 m1 h  U
1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数
3 t5 E% C* a* f1 X' @& z7 A
2 O3 s5 W) b+ s+ G$ Y5 }/ M2.M函数文件的组成部分:5 J! K7 D3 Y  Q( h* m  Y
0 Q4 w. Z$ z! @% d& y2 D8 U
组成部分$ w* a7 b+ ?8 y

6 S  I6 a( b/ J1 d& {4 r- L描述
6 B7 H0 M" p3 d1 i
7 Y) w, @1 h" I0 }8 b, O) A& f函数定义行
7 C1 h, H, u( w
$ G/ i. x# U/ G  D& _- h/ @2 y$ T定义函数名和输入输出变量6 v# ~1 O: P9 N2 p# t
2 @; X# j5 E: l' g+ I6 ]* k4 W
H1行
" }5 b# M2 A1 }: Z  P; h2 h! n; L% j3 ]& ?7 |% x3 h) g
描述函数功能,可以用lookfor命令搜索到0 @5 E+ F9 o9 O& }7 i1 L
7 Q* U. O6 @; ]4 d0 b
帮助文本(帮助文档)
$ a% E* i( J7 K3 Z! p
. T# V3 G; [( _/ E' x跟在H1行后,用help命令调出,详细描述函数功能6 U/ G/ P5 w( S5 o+ c" `
) U- {# N& \7 B- [- W& K
函数体2 p& s$ m0 i: _" W9 ~6 R

1 {1 V. s0 M* A实现函数功能的代码8 X1 ?8 n" _1 }
, C  u5 ?; r" e; m$ X: P$ S! K
注释7 R1 g" l9 i& G5 H% M* ^

$ b; h% i: Y; _" q% ~6 |' c7 Z+ {, s, a% p/ p" k
: C- F* p' @" n6 T% e0 ?5 U

/ c( F1 j2 Q. T$ [
2 a6 [4 n9 D* }' x8 B$ Efunction [ output_args ] = myfun( x,y )  e2 k. l$ y* k3 ^

7 a1 j+ m. [# D7 o- ^+ t6 g
4 D) V" S9 F. m8 Q* V/ |7 M  X
4 [% q" y+ A" qH1行
5 C, d: ~" X9 D
/ D9 ^" C6 @8 q  % n( q. ?% X1 a
H1后的帮助信息
! R- O6 f% w9 Y+ r; f* I2 k& p9 ]% b8 y. H1 m9 S
! u) j5 t+ S, @6 n- t, |& i
%caculate3 n; {+ {$ k% O$ r6 c$ I- J

9 p( e' ?, @/ v! \5 k%  if y does not exist,return x
* H) W5 }# H9 a3 ]7 ]9 r& |2 y- I
9 g# S4 k/ b  B% if y exists,return sqrt(x.^2+y.^2)& e" [# N1 Y+ u9 b1 c
- S! x5 S- F( F- F
if(~exist('y','var'))
! t3 u/ l1 Q7 P' X5 P* u+ t8 v+ u* O' I( V' Y0 U) \0 R
    output_args=x;%y不存在8 T+ z6 E3 h( c- h) o( j- e! }

' u1 }% F/ g/ n/ r& O6 Ielse
9 k0 j" Y- E* a% L* F) N( Y% }8 H1 ~. k  V, {- e; F- N$ ?: @( v8 q
    output_args=sqrt(x.^2+y.^2);0 |3 u1 `+ q) b, u

4 k/ R* ]5 a" x/ ]: `8 x& h! S
( Q4 p% }2 k" V- S+ q% Y, @9 O! g" @3 E5 u
end) i* G# c/ _: U- g4 Q" t' j
' @0 P, o8 e, C4 g7 @
命令窗口:( o1 u0 x* H: i! U  a. \
0 _: B3 E, Z; Z+ @
>> myfun(9)
9 l8 i) U5 F) N+ Z; P! O
5 `( d2 s0 `4 e
3 g9 u3 {- \2 ?: X: ~" \) ?" J7 z2 a  d
ans =
2 J* R: h9 O" S% Z& D8 A9 M& H1 G( j4 e, ^/ e7 ^- G

6 Z- d0 ]( B: j, b) y) Y5 b5 H; ^! D" p
     99 _1 l' f! w* o+ K) N
: U$ j9 e6 e% C, q0 W- H- ^

- C8 k+ w2 ~8 j
8 f- p4 D  g. a! F9 `( R& ^>> myfun(3,4)
9 E5 c; k# b6 x& B$ \8 Y& `" x/ i8 f6 O9 I  I- U1 R6 c" `
( H6 S1 g) P. [1 u7 S  c
  z- Y* ~/ P0 T. P
ans =
( `; m* R& {* ?( Z7 @+ v0 U
1 Y3 x9 R5 {9 B0 f; [+ ~ " O! V7 A& g! j" t1 N) K' b

0 g7 E8 p4 `) G& l6 h1 D     5
9 |; u  e& k3 e8 H" \
  X! b+ b0 p! H* S>> help myfun  %帮助信息
- n4 r1 _6 P( M- o1 F. F& f1 u' I% \. s8 [
caculate) K: Y. W( {3 n# p- v. a
$ u2 r: M& a: L; X9 M
   if y does not exist,return x
4 T# N- t- X+ \: {+ N( A4 b3 w$ G9 m( V$ ]3 T: B) u
  if y exists,return sqrt(x.^2+y.^2)
- [( n- w# g7 _( m
7 i% o& M: ~) h" w' A' U- I函数体中的语句如果不想输出结果,一般最后加上”;”
$ k+ y, S3 q3 |6 ^' T' b  C0 e7 M/ \. h% z4 U
3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
( P! ~- o: D" w7 [2 L
5 N0 h4 {! ?1 ^' t8 C4.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-7-18 21:05 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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