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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
) l8 ], `! H1 x9 I* z, E3 v
matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。
3 g$ J8 A. f% q) M- D- d全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.0 `6 R: v5 e0 ?4 G
& B" C  U3 C0 Y# v
Matlab常见的交互界面
7 {; i& c: g, F1 D' r5 q1 X6 u7 s. u& W- x●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。
, h  k* {  V8 B# q6 H●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。8 _' [0 k9 c) `$ q2 g
●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。/ s6 O" [+ p3 e$ m" a" a8 n" S
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。
+ d/ M7 O' F4 V$ ^0 h3 j2 d9 V) U1 T% k& ]9 o; X
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。
! b) H: \3 c9 I, f! f
6 `" E6 T( k3 [  T/ e. D" T1 Q命令窗口标点符号5 a" V) Z. z; w0 x* B: \
●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。
  K  ]7 @6 {. c7 b# Z. N& o●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。) X, ]0 Y3 Z4 R, ]( v& w) m6 u  \
●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接; Y: ^  k- @% @4 E" P! w; J" u
●其他见链接; r5 ?; i" l# l3 J' i0 N9 d1 P
: C8 d$ Q6 J' b" `5 T% r2 @
Matlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。1 F* {, X" o, {# D  z+ T
+ @3 j, s7 {* w
Matlab中预定义变量:% Z9 r- X* I( P7 l: `! V
ans:计算结果的默认名称4 d  r6 N& x0 g- F
eps:计算机的零阈值2 Y; @+ V7 p) P1 H, f  i# k
inf(Inf):无穷大,-Inf为负无穷大
7 e, }! {. {, m5 `; k) H7 D) Epi:圆周率
0 O- R/ I8 j8 C( SNaN(nan):表示结果或变量不是数值,无法定义的一个数
2 ]- A& U8 Q' C3 ]- D. z虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。
  e% `9 \2 U6 T% B9 K- O" b4 d/ ~- Q  z7 j
Matlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)
! U  b) L+ Z' ~% G+ F5 t搜索过程:如用户在命令窗口中输入命令myMatlab
1 K0 [0 V" y5 z/ {9 {          ●是否是内存中的变量
- K7 F! x+ |) w* n          ●是否是内置函数4 e# h- J) |# e" A$ c7 X+ y3 @

( d, Q8 e1 I" Z* @5 b, P          ●是否是当前目录下的M文件  F3 w' {' \, M1 F
          ●是否是搜索路径下其他M文件
$ ~6 |$ Q; o% s搜索路径的设置方法:( `% j) B) k# P) i- N) i  s
          ●输入pathtool命令或path命令
1 b4 h) C0 ~' y7 }  L6 c$ G4 \8 j+ ]- U% S' C3 {" Y
          ●matlab界面HOME->set path
! s6 e# `+ F6 X1 \0 s3 d: e* m$ t: x7 m/ k5 I; f, R
使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。
4 }' h/ D; ]( o+ g4 N8 S* m+ z
" r# J8 j; k! A) n查看变量:1.命令whos  2.用workspace窗口
( t0 Q, i* d6 M1 g8 Q( N4 w& h3 o5 z0 ^  B) ?( B
删除变量:1.命令clear A; 2.用workspace窗口
) ~1 g: y; ]3 k( f
7 R8 x" j4 i' N6 ~, }8 [9 m.mat文件是matlab数据文件,保存工作空间的变量。
, G6 C" ]: J9 G$ p0 A1 l# f
, |& r. {* h$ b9 mMatlab区分大小写。6 Q9 Y; i  N$ `/ k6 R" J$ Q

) t( g# a4 p% F; u$ K& n3 Z" j- wMatlab中的变量不用声明,不用定义,拿来即用。
  i- O0 j6 P9 }9 N2 M  I: N, F3 `7 B; G- [
输入一条命令,回车,就表示一条命令结束。4 `' I& J7 ?6 z/ w% r

4 F2 a" t/ S) Z8 z- RMatlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。: b3 L" H6 b6 Z. G

& D3 I) v+ l" s9 x. l5 ~  V4 v1.1 M文件0 e& {7 e: I( E
M文件分为1.M脚本文件 2.M函数文件9 A# V! v0 m- m) M$ d
2 T; k# V, A% w+ s. c
M文件必须在搜索路径中才能运行。
) ~) N# \8 h& z1 K$ l# \8 |
8 c( \* L+ }( Q) R. r9 w! U) e  q1.1.1  M 脚本文件
: T0 i7 c5 V7 S& {+ q8 |. F1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
& p& y2 D& I1 [4 `( o, C! ~2 D5 |# ?
2.M脚本文件执行是直接输入脚本文件名就可以了。4 I, v  e( F3 ]" v( n
- q5 R; F& N  `9 k- }8 C0 B
1.1.2 M函数文件* `. r2 W7 Y* v) Q- g0 \5 u
格式:5 ?/ {% a7 y! j" L: F
; q0 R0 o+ X  e: ?
         funtion[输出变量1,输出变量2…]=函数名(输入变量)
/ j: A( r# a; U2 X
9 F" V! w- n1 \8 r$ g% C3 o                          语句;
- Z9 {+ ~3 J: K2 ?$ p0 Z
1 Y/ w3 f% U! {9 D+ j1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数
# l/ ^3 _. ]8 |- k6 G1 F& A1 {+ d& B& t
2.M函数文件的组成部分:4 G' P' `0 a8 f& a8 K

1 h9 A5 |  m# l组成部分
8 O+ J8 W, |+ C; e; \, E' w
& u, S" [' D4 H  i  M" C描述& d. J, q  l4 Z! A0 A7 F9 H2 F

" G1 [' l( R7 ~% m5 L0 u- c- _函数定义行" v" j( r2 w9 m! K. `0 R
, R: o) W1 ]) e: e8 r# E
定义函数名和输入输出变量
8 s. a" w: m* T) h# E* s
) ~; E4 r9 D6 Y3 R1 LH1行/ c  y, |' B7 E1 E- i

$ \" w2 t# g7 X: ~7 s  a描述函数功能,可以用lookfor命令搜索到  F& h, ]! Z& ?: |( g# J4 w& I" s0 y
# G) s" `0 A' B
帮助文本(帮助文档), ~9 L( _% r( ~; v( M! T

8 T; p0 I3 X6 g3 x8 N跟在H1行后,用help命令调出,详细描述函数功能
- O, S/ \# v$ n$ h$ a$ E$ B: G+ w6 R+ R1 S& ?& p: y" Z( L- J2 {
函数体
/ z3 Q9 {) R- W- n0 I; S' w! Q( w* x2 M, v6 t' {
实现函数功能的代码
; a: T6 O0 D' o: U, C4 V3 m& `. l+ z2 x4 l7 y5 E3 q
注释( h. h) ?, D6 b
4 V- l2 h5 y2 m) I* N
8 V2 ?" Y, e: e' Y/ g* Y5 @

5 L# o. W1 S8 A1 [, T; j) G+ C" \/ S. a
9 B6 p5 z& |$ Q* p- j( H! y! m
function [ output_args ] = myfun( x,y )
0 T( `( f8 f7 ~& O1 t. z- W  r
" E2 a7 s9 ~: c* @
9 x& @. ^1 ]( k4 W- C0 c7 [6 e* o
H1行
# r/ U( m0 ?; `3 g0 i+ h
9 @8 R1 O* G+ y& p  K& M  $ K  Y2 z" K% _# j3 O5 C7 o
H1后的帮助信息& c  @# b# g" f! e( H8 R
4 J' [/ o  Q( A+ m: B9 z
( M- K3 @, I; U3 d
%caculate3 n+ B' S8 y+ e& j; \5 e  l: L

2 D2 J: M: X8 i. x! B, `5 V8 g' `+ L%  if y does not exist,return x, k4 d" F3 n: z3 L

& \& _. c+ G# w( m: v9 Z% if y exists,return sqrt(x.^2+y.^2). G+ p$ j1 P; A: N: @. M) F
( ^. J8 L" K7 m1 e# v
if(~exist('y','var'))+ S! Z) y% e4 }) u9 b

  U; f) Q2 H( K( R5 E: [    output_args=x;%y不存在- A7 m& ]6 _$ d5 N# H
0 ~. O- z  W+ D! J
else& w: r, Y$ S8 v* U* k% N5 ?

* v2 w' g/ p& O4 c    output_args=sqrt(x.^2+y.^2);
: `' A7 Q7 a1 ^  ~/ ~% n
9 c- R8 T/ Z+ O4 ]6 b0 ?9 [
2 E2 x& k, q: i- Z. E  z/ ?$ F3 ~+ K6 o7 `" G  {
end
; o4 r1 r0 T: h, u9 D
4 o) O' K  f$ b+ j$ q命令窗口:
+ K# `, _$ @" |2 M; M; Z* Q; w, f% l* F" o& Q' m" A, E( l5 B2 j
>> myfun(9)
0 ]& Z& I; H& i5 T$ v' ?& G$ ]% T
# J. h/ E+ H4 B/ F, A

; t9 h' }: ?. M. m5 q2 \0 xans =: Z& S8 r. |* X. X! B

$ a1 n  J2 d  A9 {- y 4 ^8 I1 u( O" j

  I9 ?' F4 ~' B; f. f$ ^$ ]     9
' |7 T- D* H8 {. d+ _
& d9 \, o0 b0 i0 u' p6 a
. h4 y& n% o8 }4 d2 y- X
" M' ^6 E# T  f% x5 i>> myfun(3,4)
- Q- }2 D- q, _3 g& J( O- K& D  d! `9 @
0 k6 D* R& X4 m/ P9 n4 k) z
3 v* W0 e% I# I8 D. J
ans =
. T: S9 m: K3 L2 L8 E+ k+ ?- m$ E/ W( I4 v* f
/ J' v) g. C9 r# a" k# }& r+ w( @. a
9 b! T( J3 T! O: |* j$ |9 k! \9 r
     5
( w+ {5 r+ ^$ y" j- Q1 j4 a4 }) y, b3 e4 K" C7 T, T
>> help myfun  %帮助信息8 \2 a- D7 Z- \4 O

/ F6 }6 v9 t& W' [4 `1 r caculate
/ q8 i$ L' r# ]- G0 |1 f, \  u) \" W) _. r2 T) R
   if y does not exist,return x
% B% q; U0 L/ b: e+ e  Z. u7 O4 }1 ?8 t7 L: V" ?" w  g
  if y exists,return sqrt(x.^2+y.^2)# l8 u" `6 D+ h5 e4 M+ l3 P6 c* o
' d1 v7 a0 k3 `7 H) j6 H' h
函数体中的语句如果不想输出结果,一般最后加上”;”2 n' |. c& I, H3 ~

0 e9 v2 E) J( j3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
4 u! u9 ?- \& C7 X) o
0 _) I! J- y4 a/ V4.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 22:19 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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