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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

$ X) y. w1 `1 X# Mmatlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。
5 K+ ]0 n- {6 D! ~  g( s+ d全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.
# y. j; u' J7 \/ F
. w6 U: Q1 N/ \* f6 M* XMatlab常见的交互界面
6 ?4 S8 F5 R$ x  g. Q●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。4 v) E8 `/ g5 @, f
●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。: q0 W9 {" j+ z' V) }' G# ?5 W, K
●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。
2 L) P; I( e+ z) a●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。" T) D: ?) ^4 P6 A! C
: V6 k* H2 e3 J- a1 v0 r( M
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。+ T. w$ Q9 f- q8 e" U- s: O* ~

  Y6 e2 B9 j% p命令窗口标点符号
& E: A6 ?& R; m8 f●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。! }0 h: Z( ?8 N
●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。3 F. `/ g/ }) M/ p5 s7 `% n
●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接+ \  n% {1 z; k( U  u. P' K
●其他见链接# q( Z6 P/ {0 @  B5 h

$ T7 ?9 F. e9 |$ b* x9 yMatlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。
9 Y$ p8 W5 n/ u8 _1 j3 p5 F# b
7 J1 B0 `8 }6 O3 Z8 XMatlab中预定义变量:" d) L4 N+ f% }: V
ans:计算结果的默认名称
; g- \- n' i8 ^8 K+ ceps:计算机的零阈值
# S! \5 n& r' {+ m9 kinf(Inf):无穷大,-Inf为负无穷大
8 E# w( M# K; jpi:圆周率
5 H% q. |) m; ~NaN(nan):表示结果或变量不是数值,无法定义的一个数
5 u  }+ {! ~1 `4 n/ U虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。! `( T8 x$ b) F/ |# M
" D& E% W' Z" K( [" {1 @
Matlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)( Z! T9 ~& ?# i- L# k+ I
搜索过程:如用户在命令窗口中输入命令myMatlab
: c+ u3 H, h+ h2 }; `          ●是否是内存中的变量+ L6 T' e1 f# w" _
          ●是否是内置函数
2 g" z/ r- F6 O/ A9 B: u$ Y! ]- c0 J
          ●是否是当前目录下的M文件
1 K- U7 q  Y& |# W/ @          ●是否是搜索路径下其他M文件6 J, Y2 S$ g: Q2 x* X! s# y
搜索路径的设置方法:
* D( \; H7 n& \; F' u( ?8 w6 u          ●输入pathtool命令或path命令
. E) B; r( ]5 a; p* C7 Z! o4 r9 h- l8 O" L
          ●matlab界面HOME->set path' ~6 n: d* }' g6 o

7 U  r; O/ T  z4 A# ?8 h使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。" u6 {/ b9 l4 p0 B" n, g

. F9 |) t8 }8 M: ~7 _8 w查看变量:1.命令whos  2.用workspace窗口" B5 f( O, n% d& ]7 x; \

  W3 {( l9 z6 I$ }5 G/ w删除变量:1.命令clear A; 2.用workspace窗口, A) V" C8 S/ b& x3 `
. K4 p$ T+ Y  k! J' R+ o6 a
.mat文件是matlab数据文件,保存工作空间的变量。  O. \6 o9 `1 F7 Q$ m% w: G
. F8 C3 I. P0 I
Matlab区分大小写。$ n" q8 F1 O- Y+ A0 }% |/ c4 v$ X8 [
' U! \: H+ `; }1 R8 ~1 n
Matlab中的变量不用声明,不用定义,拿来即用。  A, L' l4 W1 u9 F9 l) W; y' x
- Q7 H2 W$ D$ k3 {
输入一条命令,回车,就表示一条命令结束。# j7 c  d6 O8 w' w

( P- [9 D, a! @4 U9 \Matlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。. n) t" z$ [5 o/ H$ _

% R7 ~; D8 ^# l8 o7 Q5 f) Q1.1 M文件
- t9 l; o8 {2 @# VM文件分为1.M脚本文件 2.M函数文件7 ?! P+ e1 `& p7 g; e$ w+ @
6 d' v9 N% Z: {% u  ]
M文件必须在搜索路径中才能运行。9 P: _2 \! s+ k, x' H8 e% u

7 Z. y+ m$ J/ U9 \8 Q1.1.1  M 脚本文件. R; K, S$ P8 p: f
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
" S# i8 G2 T) S- n
+ O. K* i  c8 \5 @# ?  J8 O2.M脚本文件执行是直接输入脚本文件名就可以了。
* H1 |+ P  k3 t- U2 ^* w& ^9 M
( d) ?0 h8 [! C) Z$ L  r1.1.2 M函数文件
7 d" b& u4 S( i( M/ H格式:
% m# O! j3 e, l9 \) l1 @5 D2 C& b: \, v5 o" ~
         funtion[输出变量1,输出变量2…]=函数名(输入变量)$ i% H9 x0 r: F. f- o) e. e7 ]
( K- b+ g) \/ t! _3 S  [
                          语句;5 @- a! a; P$ y0 X- t
5 [" W' x/ X1 m
1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数. A5 b7 O1 V' L6 x2 {- I
' \5 F, M& \- J: C9 O
2.M函数文件的组成部分:
. }  }& M3 ?. r+ y1 M4 y# x+ g
7 E6 V6 ~! e, \2 i. Z2 S$ G9 z组成部分
- n) r: [: K' e  \0 b7 U
) o/ ^* g; N4 ]& R$ N+ n# v描述/ j5 b8 @- S! ]  K* {- n$ p- ^* t
' n) j% {- [- }
函数定义行
: u; |( r$ |$ r5 Y
  k9 T7 G2 U% `. g& }定义函数名和输入输出变量! n, f8 B+ z5 O$ \1 C3 d

+ b, I% t% Q' v- e# C$ d3 ^% P: mH1行
  m+ N- x. z+ v3 C+ M& P' h4 p, d
描述函数功能,可以用lookfor命令搜索到
8 c9 A  n6 Q: S) j
+ j) P- \+ y% {- k$ K6 d7 `1 \帮助文本(帮助文档)
* j8 |. B! S7 U0 h1 u6 i1 R1 z$ f5 K6 G, N+ p+ M9 J4 I1 F
跟在H1行后,用help命令调出,详细描述函数功能
) b/ z' x/ b# Z8 ?5 \" ?. B8 k0 |$ i+ v) [0 o, W: m
函数体% Y2 P. `6 W+ O4 H0 \7 ]" z

; \, b: d4 ^* c2 u& B4 ^实现函数功能的代码
. ]1 x# P; Y: X: |9 {* K3 g
9 V& u3 K* s! @) n4 U, i, i/ c注释- O9 \5 D/ Z4 h
$ X) h9 K  m% Z* G4 G6 f% ?: D  W, v0 i) }

) [- |% I& B* d, k5 Y3 N  T& H ' g/ \- n4 n% @

* K9 d7 g3 t' i- f
; w  h# W% I2 mfunction [ output_args ] = myfun( x,y )# Q% I3 i  n- A1 T- _+ T

- H8 P+ u- f$ s. q% G+ W* ^
7 L9 R, u  Y, G4 B5 k4 M* ]( z
3 Q, g; V8 u) D8 @- }. @H1行
, g3 K% f; o" l. L: U0 l
8 p5 r+ n) c  |' e+ e" j  5 n5 f, I$ \; {/ ]: E+ S. V, h
H1后的帮助信息0 Y0 K, U) i+ u6 ^2 q) h% Y  V

! S$ q0 `1 P, b5 ]+ p, x ) X! `% g1 a4 S! j7 @1 b4 z
%caculate- E, B2 i  e3 N, \( a: O

8 ?3 z- \  B* o6 r# d/ @# X1 b%  if y does not exist,return x
0 @1 U* A4 ~" M5 }' w( j! N
4 l  d- H& ~+ B& L/ P4 A7 [5 Z0 n% if y exists,return sqrt(x.^2+y.^2); U2 H; O+ J0 \$ L( s8 k
+ ?4 ?! U: Q/ S
if(~exist('y','var'))
! x) }+ X* [! r+ @/ E
5 w  G' m5 B& r/ g: B) O/ W8 l  m. O    output_args=x;%y不存在- x9 J" d& Q9 @$ k. z
& j6 p( D, O4 ?' e" |
else0 b4 r  Q$ Z! v: f) y

9 ~( g. r5 M3 _8 M8 C$ ]! R5 R1 U    output_args=sqrt(x.^2+y.^2);
+ f9 h0 X; J# m$ b
  A1 @- M& W0 Q* z2 z - ]; B6 I/ l# M! D; B2 V' S/ ]; h/ g

; ?- P& j% S8 H4 s8 S% ~end
1 M3 N: k: v4 W; {
/ i- _' ^& Q+ K- o: N& C1 i( m命令窗口:
+ V  b! [* L, ?) |
, L) v6 E: @/ Z8 o( A4 u0 u3 @>> myfun(9)
6 p9 o$ e; V3 T4 h- I% h
' L' S5 O# E" L. s3 J
( F9 `6 V( D$ g: e* _5 E* m  ?
: f' {$ p# O! oans =' j' q! P% a+ b' m  I! M
5 E3 S7 L; P; q& U

, r  C" {" J% D# V& I: P& N9 m/ z9 Y+ e
     9
" W4 P) Z9 _3 f8 r" v% K) r4 Q" x# K& A0 J( F
: B7 s9 ~2 \. o% X8 x* [
7 e; K7 R4 J+ [  e& X! z
>> myfun(3,4)
# K- ~- l& K3 M; O
/ T. A# D$ }! Z2 O% I
; Q5 m0 F& h2 Q" I$ v
; x0 p1 a+ Y# Wans =# a* E# x" Q2 S
- c! h3 `) T% i8 v$ a, D# c
* S4 N- X8 A! _; y% M$ M- K4 e
4 y, v5 }0 Q  s! p  `. @+ ]) `8 D
     5
% ^' Q- l' Q) u6 M3 n) P* Y5 i* `  Z
>> help myfun  %帮助信息
( s. ^  j' s4 D6 A( _0 ~( {6 K3 x4 `' l7 C
caculate( |9 `8 E) N+ O8 B- z

9 {1 `8 `8 R+ L8 @   if y does not exist,return x
4 a8 N# v, t7 \6 I% j) j' B
& z" k" {# r  ?) P  if y exists,return sqrt(x.^2+y.^2)
! q* p, f! [0 N# H& I( D9 c
0 q7 A; S* n0 o, @- j9 g7 g8 g函数体中的语句如果不想输出结果,一般最后加上”;”
1 D, \+ V$ X4 f4 h& g9 a1 N0 i; N8 b5 q9 `3 d  ^
3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
9 Y) s) q9 p' p' h. X# n, S
* Z3 l# O/ {& r( M4.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 20:03 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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