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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

* P% |7 i9 s/ R7 A: B3 h8 Y1 lmatlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。/ {( g1 |% |- p5 s: C2 O) A8 f' N+ R
全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.
, |$ i( s* Y5 d) t' L3 Y( g
( O& ?; a0 _6 s3 C- P3 _Matlab常见的交互界面& C& x; ]/ o" s! z$ F
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。5 Z+ A  x8 A+ T' {4 U  p, k
●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。
1 L; m; d. d# r' O( |' w●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。
/ N( L, C$ S' f; _, l: B6 V2 F/ e/ S●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。4 \5 F, D/ t1 t& S; }$ x. K! F
( Y4 G: n9 a# o
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。3 Z+ |+ Y& F( L4 ^" u) a
% s: N+ ^5 W2 `! y6 I
命令窗口标点符号) i3 a6 z+ Z# \: j0 ?! _- s; ]* S
●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。" K' J( b. ?  X7 H' t  I
●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。
6 ]/ D8 U! C. n●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接
4 f* b9 q4 R, i& a6 p●其他见链接. \# z6 Y+ f5 Z

: w5 ]) q% ~9 j9 C# m7 jMatlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。+ f) Y$ }$ d9 @2 z, s1 P# L" Z

! l/ S0 u, H- ?5 i5 d; j' t8 j, nMatlab中预定义变量:
: F0 o) B. n' _# {8 q9 y! zans:计算结果的默认名称
$ _* l8 h$ h. I1 i. E7 y, d( Heps:计算机的零阈值5 V6 @7 b" P$ r! q
inf(Inf):无穷大,-Inf为负无穷大' O- r' V: {, J2 q+ {. S
pi:圆周率
. d. T9 a: h& B- W' e) I6 C4 xNaN(nan):表示结果或变量不是数值,无法定义的一个数
& y' J5 h3 ?4 Z9 U, h5 j2 v; ^虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。
" G2 z( h3 a. I: O! X4 F" g' p, {8 I2 m6 h7 d3 D
Matlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)5 U, C# t; _) I* e
搜索过程:如用户在命令窗口中输入命令myMatlab
/ v+ i8 ^4 |5 {, H          ●是否是内存中的变量
& [" X% v$ A: T0 y# @( Q3 U          ●是否是内置函数  U! y! h; {" H9 n' ]- _4 X2 P

% O" X& o  [- P- F) g8 c          ●是否是当前目录下的M文件) k2 A9 M+ |3 v1 z8 k: V2 w
          ●是否是搜索路径下其他M文件
6 S9 [5 ^* a5 }; u搜索路径的设置方法:
: D9 m& F: X' J/ [8 T: f! f          ●输入pathtool命令或path命令  P% K: R* \9 R1 g, f

( U/ g$ A6 L6 s, g          ●matlab界面HOME->set path+ x  x- G' M% D9 o. Y

8 n2 H  G; n( z' B7 z: u4 v使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。; K8 W% |+ Y% _3 q5 P
% F/ k* _' j8 S, j3 r
查看变量:1.命令whos  2.用workspace窗口, \9 O! t" f& M' d1 v
, M8 L& j& J* K4 ^, m4 _5 _, }
删除变量:1.命令clear A; 2.用workspace窗口$ X3 V/ j+ p) h9 W4 o* U

% a* _+ W9 [# m5 i" E9 j9 @.mat文件是matlab数据文件,保存工作空间的变量。
7 t2 K) @. f9 |* {- X( V8 E1 V* e1 G; z# m1 c
Matlab区分大小写。! l7 G; w1 O0 V2 g# x# A
9 q& i- e$ D, p1 ^& ^9 ]9 c
Matlab中的变量不用声明,不用定义,拿来即用。
* ~/ X: B' Q( H! f% U1 u" z; M6 ]
$ H. C% l1 \3 Z输入一条命令,回车,就表示一条命令结束。
, U6 ]: R# i0 M6 h6 s# H' |  P6 L3 u9 Y6 s
Matlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。% W8 Z, U( [& a+ {3 S8 ?* K1 k6 G: ]

0 D; ~# V$ u* h1.1 M文件
0 [" g! o& k, K& R. bM文件分为1.M脚本文件 2.M函数文件+ B0 F( C* T6 ?: F* O- y6 F8 W+ I
$ u* S" `, D) b* X& X
M文件必须在搜索路径中才能运行。
+ A8 c( j! A6 q1 U4 I" R' \: @0 g
' ^! r6 i! |- }0 w3 U% n6 Y! q1.1.1  M 脚本文件- w: C' H1 G7 G( M/ V) _6 I
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
) s# R3 g' n+ l3 c* C1 V- w- M, Y2 C) k. z$ N. d
2.M脚本文件执行是直接输入脚本文件名就可以了。- X- m( |  Z% @, d6 Y& m  t6 e% `

$ F' w; O% C  H! b5 g, C1.1.2 M函数文件( `, {( {! K* ~; F7 \1 K9 }) s- `$ ?8 ?
格式:, h7 M/ M3 h' P# f/ T+ W
& j" H+ s/ _- d# L3 k
         funtion[输出变量1,输出变量2…]=函数名(输入变量)4 F8 ?# |. ]6 C3 s" [: C
9 ^6 Y7 A7 s9 a# ^
                          语句;5 X( _& M- {7 ]0 L+ i
% b+ i9 C+ S8 g
1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数
- ]2 g4 A7 |7 [+ D# @- w5 {& j+ E2 N" V+ Q
2.M函数文件的组成部分:
! k* z) L4 A8 y* y& w6 ?) N; X7 p+ ]' C- }% a
组成部分
$ B( c0 t! [9 Q/ j- u. ~
5 I6 |' [$ m! i; c5 o3 M描述! U0 C3 w' i5 I0 w) G7 ~

) I: V# w; i- Q7 h6 i" C函数定义行
& Y% R) H; o) \, v* S9 w
) M) A4 j4 o2 e+ |7 |定义函数名和输入输出变量8 }  Y% r& A! ?0 L

; P1 i2 J" v4 @& x* |. MH1行
  Q- ~. c6 A0 d9 W# o6 ]# W5 k, l, ]+ L* b* d( c
描述函数功能,可以用lookfor命令搜索到
8 f' |6 n0 O7 F" D4 ^! m( K5 d
( ^& g9 T+ U- N% Q- h帮助文本(帮助文档)
0 V; @& {4 |5 n% y2 k- Y
; u- I- @- X5 m8 Q1 ~2 k跟在H1行后,用help命令调出,详细描述函数功能
" t: M. p' C4 n& ~$ w! C8 Y, g  W
+ ?& j% s. q3 I8 O  U, ~( P3 n函数体% i8 p) P6 r% C1 J/ ^5 x0 d
, J2 k$ b( x& y! j. w
实现函数功能的代码# c- b* I. Q( F7 R; k9 f3 x
) }' H; D( O7 c$ @
注释9 L5 t1 v0 W& T) D' Y2 H& m6 s$ x8 d

) ~" J0 t* d+ B, y
( }! W- p3 ]- b! g7 {; t. [ : I% y7 ^) x: E+ Z7 Y

- [+ s# {7 X4 j( I1 j5 m1 H' L, k- n. \; I& v& o3 p1 |3 \
function [ output_args ] = myfun( x,y )3 [. W, k  l$ }, M; ?9 m
, `! y/ c, T# W  |) X/ K! I, K
, `+ w9 d3 q; O

: F' C1 W+ U7 u9 W6 `, Z1 eH1行
" u/ N5 r& \* ^
1 T7 ]7 y9 y& U; l* P6 w) k& }  
; P5 U  I' e, X, D+ D. f7 `H1后的帮助信息
+ s1 k8 s2 h. K' G3 j8 K3 F7 N) m& D7 n% p/ e
! ~( t, v) e, _
%caculate
  |# A; p: E4 @+ c
* i/ K3 p8 i# k7 B3 E  f. u%  if y does not exist,return x
$ f* z! c4 [4 @7 r" F
& A  q! u. F% p4 t3 M5 D1 G& u! C% if y exists,return sqrt(x.^2+y.^2)# W+ K7 T& p! w$ A2 l
& ^2 A- R' x' [! t& M" ]
if(~exist('y','var'))' R! Y) ?0 j1 w* ?* u4 t$ _" L  p

2 ^; W% b& ], C* a$ X! |$ D3 G    output_args=x;%y不存在4 _+ _! [4 U% \& l1 ?- o( u
& H4 I3 B  U  A4 X0 w* S/ r' B
else1 ]5 `9 |8 I; J3 j  K2 p$ F# l
2 J- N6 Z- K' ~
    output_args=sqrt(x.^2+y.^2);3 O' L) D! K# _: h& [  }

' B8 v* p7 @, e" F! V( Z) e7 | 4 w6 I: q- p* n' N

% d) d; P9 ^4 \7 D& Oend
) x9 z* G( G/ x) A# Z5 ~# c0 N; l3 e3 S( v
命令窗口:
+ @; y0 k/ I9 J+ k
3 p1 B6 W5 X; z1 \>> myfun(9)
8 m0 w2 q% G# m; `5 S& {: F4 \" n  m) Z$ @( d% j7 T

4 G9 b. O( F, S& F. U
1 a1 L1 J1 g( H2 E8 I9 I& I  Xans =0 f. Y4 ]6 y6 ^) ^
: j  k3 J( h% Y6 U

; k# m1 H5 Y3 a& k
# C4 ^( I" P  |/ R4 I! ?     9' a# G. \, @' r7 X

/ v5 q2 e- Z1 y) P" [ : k1 S, d( x+ s$ A+ R' B
  n/ b, a8 n: Y  L5 D+ K' P% l
>> myfun(3,4)- h, g5 N9 T8 @0 m4 s* x

# e* _- X% Y: `: s9 B8 i2 K; M# `2 i$ W( ?
& B& P, F$ F  y5 M) c5 U9 ^" d5 \
$ D& p: w' _# H6 y% eans =
  y+ @* Z3 ]' s4 p4 `
2 _1 t, e3 i' o # b- T/ r( o% r2 U) Q# F

% N1 I& o, g/ V2 b' A! v     53 Q$ \; Z! P' w
4 d$ P2 S9 u( X" Z4 g  y0 N* B
>> help myfun  %帮助信息
; H. p/ O% z; e2 ]3 S1 E4 F& h2 P! c9 C0 @% D3 T# M
caculate
% I0 b4 T" d. M+ g: q! g1 D
) a0 q9 M, t, W6 r- L/ v   if y does not exist,return x) {" Q" ]. d2 ]

' Z! l# z, I5 g# r& k  if y exists,return sqrt(x.^2+y.^2): J( B" l# L, R4 b1 y# E) ]+ E

# f. ~) Z# q, u! d# ^- y  \4 c函数体中的语句如果不想输出结果,一般最后加上”;”
) p( z- F0 }5 A+ f
5 r* ]4 i, A; v, V3 {  e: ^$ l; J3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
# ?  Y4 b0 J; i7 y) Z& O: h# V. n6 m$ J% S6 G# h
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-10-5 12:14 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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