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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

$ Y4 B/ H" F+ B" R) A5 ?matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。0 q5 m, {9 I4 J7 K3 o1 H5 H
全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.4 r* I7 ~# l5 l4 }7 ?& x) y8 n: }8 W
  x4 m# Y' t# ^6 V. r- S
Matlab常见的交互界面0 G) O, A9 z; k
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。7 @6 U0 `- x; Y* F
●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。1 q! f( p+ c7 U: P
●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。9 n7 S/ ^3 C. P( t1 D  U$ p
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。
0 J" X# h) A! t& ]! B) y2 X/ n
/ L( ?" I& c4 i# `2 N默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。
! o2 v4 u9 s$ |1 ?1 G! o
# `! v2 e' `7 {5 z命令窗口标点符号, N5 f; m: |$ H# o2 w
●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。
. J9 B$ t1 O% v! d1 a●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。
, r3 Z; A7 w2 k●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接' f0 t$ @( k1 D+ ~! O0 u2 {( T
●其他见链接+ V/ U' V+ L) a; K9 Q" B/ \
9 O$ R3 F0 o: z; ^; }
Matlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。
* i* s% A+ I  O5 F9 \% V; D
, J) U+ `2 y* n. ^; v3 zMatlab中预定义变量:; {- r1 B' h& Q) ^
ans:计算结果的默认名称
; c- u( C4 R! x% Xeps:计算机的零阈值
& K5 Z# T* c7 L; b0 m  pinf(Inf):无穷大,-Inf为负无穷大
! |, t  H* ]# R( J/ Z. E( Rpi:圆周率: y' g7 b& T6 m6 O1 U' f& E1 c
NaN(nan):表示结果或变量不是数值,无法定义的一个数$ O: a  r, H3 ^6 S- x/ i1 P8 y# b: ~
虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。
- G+ `: g- d3 z
5 V: i4 E9 |: a4 R1 WMatlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)! h- B6 W" Z- K( {1 a
搜索过程:如用户在命令窗口中输入命令myMatlab
  `8 m& L5 Y2 A4 ~  a8 M          ●是否是内存中的变量
# ]' Z8 D- k1 S          ●是否是内置函数  y5 G& q( U$ v' M4 \6 `1 A

( b( e* F! t5 w8 j! ^          ●是否是当前目录下的M文件
" t- V/ e  j0 j          ●是否是搜索路径下其他M文件! B4 j6 k# u( b
搜索路径的设置方法:
, f3 Y7 x: p: M& |          ●输入pathtool命令或path命令& m/ `* q1 I& w7 r3 h' _

" E8 W9 \1 c4 l* x0 H. d          ●matlab界面HOME->set path
) g& R5 b. a/ i! \  }: U9 u+ r: C) Y) K. B
使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。" `' p( K& K3 D( j* l* p8 y
7 m7 W) b6 I1 N
查看变量:1.命令whos  2.用workspace窗口. Y7 [. H: ?7 I) k' E$ K' r

2 Z" t# t" M$ `( q! j8 n删除变量:1.命令clear A; 2.用workspace窗口
* N$ C; R; v5 s2 k
0 S, p' C; i3 X& D.mat文件是matlab数据文件,保存工作空间的变量。
  k. ^: h8 W- o
3 V1 g$ u3 }9 \9 _. [1 bMatlab区分大小写。" H$ Q- ~% d" S: D! _7 N. z: M1 U
2 F+ ^/ x- w9 Y& ]. n( T  P
Matlab中的变量不用声明,不用定义,拿来即用。
1 }* e% P. K. _' Y' G% z* @7 F5 x! L% A6 S7 f3 \$ I
输入一条命令,回车,就表示一条命令结束。9 w; R2 H+ f/ v3 d
) ^1 P; |1 T. B
Matlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。" E5 N2 k1 {) ^$ s% ~+ e0 V/ A
7 {$ E. ?; t/ e& ]8 v$ o& \% A
1.1 M文件
7 Y( K5 R" K8 j) Y) Y: sM文件分为1.M脚本文件 2.M函数文件
1 i: E# w' c8 ?
: A; M- r' n& ^, f. F- BM文件必须在搜索路径中才能运行。( ^, `. n' v; l$ r- ]
+ k, \9 P3 N5 @4 D# F+ O' v9 J
1.1.1  M 脚本文件- B; U$ T# W' N& X
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
! Y) \* r' s+ O% P& v! ^& n2 O
" b6 V" X7 j' i6 b2 f. N2 x2.M脚本文件执行是直接输入脚本文件名就可以了。, [" J& _" \, \$ v3 N

* u5 |3 T9 X7 `9 m+ n1.1.2 M函数文件: \8 Y' _, k7 ~
格式:; N" U6 p8 d/ A: _* T- B/ F

* s) s2 v1 t7 [  H+ c  \         funtion[输出变量1,输出变量2…]=函数名(输入变量)
, e" }) S8 N6 \2 t
& G! H6 P! O/ W: H: X                          语句;
  J8 _. ^, e* |
  x( [6 [9 i5 B# T* y. K( g1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数
8 ~$ g6 w. Q' R& k
9 m9 x) |# O) T5 s2.M函数文件的组成部分:- K5 F2 @1 {) \. z

) Y  @) L, v7 A& P  u! Q3 ^+ |! [组成部分
6 u9 m" r. E" S3 t$ E( k
2 m' b) ?% E0 A: B# z" M描述
( w: g. u+ E# k* b$ k: ~/ O# c
: ^8 S- n: ~2 I/ u  \6 \3 L  I: D& N) n函数定义行3 ~) f5 v. m8 ?5 V6 k; a  o; u9 o

2 V; q* x. A7 |3 y7 ]3 f) K% y定义函数名和输入输出变量
, a" ?/ l# P4 B3 x7 E. N8 m" W8 U$ g! V
H1行( v7 f3 A8 i" b

) g+ e6 z, g* l4 K& j描述函数功能,可以用lookfor命令搜索到
  L1 B4 w6 C+ J. w8 e
" H* e3 R, \& E5 ~- _# S帮助文本(帮助文档)! S& ^+ ?3 H, A( I

# O+ x3 \/ t) @0 G/ s0 P跟在H1行后,用help命令调出,详细描述函数功能
2 Y3 _9 k7 E; n
. D. i+ O  S, Z7 c1 [) z" J0 M函数体$ F' h/ t2 _0 t' E4 Z0 g3 M

, c! D' u9 j" M$ I, R8 G实现函数功能的代码9 [& p: B: x) h4 C* ^4 j# K

6 a: J% Y3 s; C7 w' \9 E8 s# W注释
( C( b! m2 \5 F& v! w2 A
9 Q9 m( T/ F- m; X# k+ m" c# L8 Q$ Z: Q

  x/ J; N* j/ b* I* L$ Q+ _
, q- Z5 k- K) y- `  k' H) W& |7 O) y: ~  c* W
function [ output_args ] = myfun( x,y )" ~* L7 Z4 a2 s7 v& ^, [9 u
' p- g+ ^  U. x# R( z
& l0 h8 `0 C' m/ E" O

% [, M2 K4 E$ MH1行
$ W0 A- {! V' p3 l. y2 n) V5 i0 ~- l) `* x
  - C0 v  V( O* J5 y8 S% q% m! a
H1后的帮助信息# U+ v, K3 J  R  a6 a7 O- y

5 P9 \0 ]  R( f* q6 U& d/ {6 m4 C % G" u$ h' L" c) }6 A5 R6 ~
%caculate- Z5 a' W, \$ i' X7 ^

1 g8 Q1 u2 e# E; ?2 _) K1 m%  if y does not exist,return x
4 \- ?1 z& j  y) C. m9 n5 g. k6 U
7 D: K2 f7 P/ }% if y exists,return sqrt(x.^2+y.^2)! k( u, L/ H2 F8 U
5 V0 \* P9 T, i7 P3 J, P- |2 k
if(~exist('y','var'))0 @3 S7 B! Q. @) C
. C2 I0 U8 x- }6 _
    output_args=x;%y不存在
0 L8 Q+ q6 t5 S0 J  C0 a
) @: u8 N# J. Felse
" G% j4 h' t4 q! h/ ?7 E& I7 [. T) w, h" T2 g0 \
    output_args=sqrt(x.^2+y.^2);
! Q1 v. g; P4 T  i
2 ~3 H) G3 `9 {& ]6 ?# Y$ m
4 `1 B' V7 n( l% k
# z) t  o1 ~& f. P  Aend4 l% o2 j& k* E# p
; g3 Z5 j' _0 q
命令窗口:
" l* m4 R( w( Z1 m, f6 L: ?+ q. j5 d: k
>> myfun(9)+ @3 S. o' n* c. H1 h4 p7 D

! p* I" z3 I  W ; p  H( V& r& `" h/ L* h/ I* F6 Q
4 [9 ]4 X( W) i. w0 \$ ^* f4 C
ans =& I+ I7 s7 B9 n; ?( U- L# c8 B1 b/ h

  s( R- B: Q1 T8 ]' S6 J: u& i& h
5 g- e$ x% w1 j7 g( r% u0 P0 k% s2 F* s5 u. h, B
     9
$ I$ s0 F' p7 b
1 q- i+ w/ @' M/ Z % ^* G) _1 _1 j0 p" s7 ?8 d# b) S
! m! j$ h7 x: C8 _, r+ W+ o3 J! p) K
>> myfun(3,4)8 u) w' y0 L' P
; g, b4 h, |# \) U9 Z8 f" m

( Q6 d& W7 I9 r8 G+ V( h0 Z  B# B3 H5 I- z- X" a0 b* l2 \
ans =; r4 {, t# \1 P

7 c  N5 ?2 I2 m2 F+ a- n. o
9 ^0 P9 I) L% C) W8 Z# p) F9 L2 g+ [7 ~
     5
' ?3 g* ^0 v3 }1 S4 D8 }  R3 S; o0 Y2 T+ w+ l) r
>> help myfun  %帮助信息( o4 k7 f# p1 ~

! e  `7 E* Q* C" Y caculate- B- j5 ^: z$ ^4 h; R7 q3 \

8 g0 M, e7 R* {8 K- }   if y does not exist,return x+ s1 v/ i  u6 f# j

( Z% X3 `; k* A4 S, }5 e8 E  if y exists,return sqrt(x.^2+y.^2)
( [! D' F+ V( C2 b( H
3 E* G  E3 ~6 I7 V- r; K$ B函数体中的语句如果不想输出结果,一般最后加上”;”
* _- V/ u9 \2 J7 {( U4 X8 u
3 u4 H3 t1 N* w/ B: E: z0 F. m# |3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。5 }# i- j) d4 d  |+ K$ z/ h

+ Y5 c/ q) b/ {5 j; ~# o! r2 W/ N4.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 18:43 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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