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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

+ Z2 }% ^+ W4 q: Q$ Y3 g6 N+ c- a% Rmatlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。
- D- w( y0 ^3 d& C/ M0 h全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.; k( h3 X2 W( w' P* f8 g5 m5 p
0 Z8 T+ K# a6 {5 K- D& q
Matlab常见的交互界面: P- F& D4 Y- i+ I% o+ f- E
●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。8 Z) X7 Q7 X! i0 S# U4 K. Q# C
●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。
! w! S0 @% g4 b& |4 ^3 s" @! R: l●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。: A! l# X8 D) ~4 P. E. n
●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。& g; u5 `' f. A3 E* j  P- D, ?
; F$ c2 \. x/ f% y9 C0 G! b
默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。
* a3 [1 Y  A) R; R3 Z. T) ~) G
' E2 R. M& s, O# ?) ]命令窗口标点符号1 v, N$ X/ L  a5 g- A
●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。
+ q5 [/ e; g' M: p4 Y$ S●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。# y; l: T% P! c) [1 R; {2 `
●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接
2 t' V7 J% O" S: s●其他见链接
* {& c% ^9 w6 v+ `, c1 A' P* X9 Z* X. S% ?) V% {$ W/ q+ p
Matlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。1 ~# z# E6 z  p8 e6 I. Z1 Q
7 }! v- V, F$ e" {: {; z
Matlab中预定义变量:! U6 U' O7 s3 K
ans:计算结果的默认名称: Z, F$ A0 _" X9 r3 u. `  O
eps:计算机的零阈值! _. s& f, e5 P) |/ {6 A& e
inf(Inf):无穷大,-Inf为负无穷大$ l8 s9 A. j, l( w) ?: m
pi:圆周率6 C- z! F% `5 M. f/ P( M4 e  \
NaN(nan):表示结果或变量不是数值,无法定义的一个数
# w. s8 Y3 J6 r% j7 p虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。0 X+ [& r. \; G
" K% H3 b9 E* w" T6 z2 S9 t
Matlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)
6 {* ^& Y' B( s' e$ e  A搜索过程:如用户在命令窗口中输入命令myMatlab# \: }$ @5 S5 Y+ y7 g* b+ H9 |/ r
          ●是否是内存中的变量2 |9 G6 o" J0 q
          ●是否是内置函数9 _( l2 c3 ^& ^5 F1 s

$ N$ l! V$ F+ z8 I9 `( T. f! \          ●是否是当前目录下的M文件/ |+ z% s( c1 f+ a" V
          ●是否是搜索路径下其他M文件
# F! w6 Z! G4 L0 x% F5 N搜索路径的设置方法:
  M- q8 d* u; N4 \! d- a% t          ●输入pathtool命令或path命令
! ]( z  Z) k( l5 }# \/ U8 R; [0 K7 R4 b: u7 `
          ●matlab界面HOME->set path
* ~% ]! b2 [+ `! a, _$ Z
6 s) M  q! V5 z' `使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。; T% W3 i: q) \* ]- t
1 C$ |4 \; `+ J- f
查看变量:1.命令whos  2.用workspace窗口+ M* [0 @8 \0 S0 _* z# E8 c) x

. U# s# V/ c4 x1 p删除变量:1.命令clear A; 2.用workspace窗口8 G4 B0 M0 R: O" Z+ |# A; E
+ \/ m+ x7 e7 U$ w' l8 T
.mat文件是matlab数据文件,保存工作空间的变量。" W; P% R1 V  Z5 {5 n' X8 Z
( _8 W/ b/ w6 O2 s5 C
Matlab区分大小写。
+ @0 Z$ u, t2 }! c: s$ j3 {) w. j. s0 @2 ?6 e$ o
Matlab中的变量不用声明,不用定义,拿来即用。
" ~  @2 s% N0 c+ _+ S5 t0 Y* ]7 A# N% F% k6 U& H# S1 U, ~2 k
输入一条命令,回车,就表示一条命令结束。
8 X6 J. ^! z) \* g, E3 R
/ b( p: |4 |( N* ~' _3 G% R1 HMatlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。
$ \# N2 ~# ], u% o' a$ X
- X4 }% t0 n% A, K8 S1.1 M文件
5 e- n, R" R$ ?, xM文件分为1.M脚本文件 2.M函数文件
  q9 ^6 o# z) r  R2 K+ D
# h3 P1 t4 p3 f% L: f- EM文件必须在搜索路径中才能运行。
8 d/ w/ F* o0 N5 X
* C5 F6 n- F6 ^& e1.1.1  M 脚本文件$ C7 `% Y, R' h" p; \
1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。0 v4 S( T+ W* S  n2 x

# v" e. }( H( E+ N6 j4 e* T2.M脚本文件执行是直接输入脚本文件名就可以了。
  A1 G: s3 ]9 _: T
+ g) _! v. V' F& c. ?1.1.2 M函数文件$ p6 k8 ^7 T( S9 N! a" L$ L# D) y
格式:
: S/ a+ }8 R4 v7 d. M' c8 c$ Z  ]* s: r2 v, l1 |
         funtion[输出变量1,输出变量2…]=函数名(输入变量)- F( k) e/ y$ Z! n$ `

  r( ^0 ?% ~1 U                          语句;7 L( y3 H& ?; t. c
9 l) x6 T( x% T* u0 B" ^) s
1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数2 E- s1 r1 }3 u: t( u
2 R  o6 x- x$ `! }8 R, L2 y
2.M函数文件的组成部分:# ?, I2 g% I( t/ ^
4 W. F# e  Q' Q
组成部分
6 Q* L! }( o! i$ |1 f- T8 X) Y" m
) o4 l: V& q+ A! [! [% H描述
; k/ H" J5 G) A' M1 O5 s0 u. j  x2 }0 j: R) f
函数定义行
. M- m% P7 G) j4 o, m- g1 W
, A3 A4 H: g' g9 z7 d$ B定义函数名和输入输出变量; i/ @7 U3 V0 r, o# \" ]( K& C" z
& }0 G7 f8 {) K) z4 x2 x% P
H1行
6 _2 u& c: T, a' l5 |& P9 T# Q! a) ^$ ^& K: J5 [7 p
描述函数功能,可以用lookfor命令搜索到
8 ?: T5 f. M( ~) k! d# J9 h# D# R: D- ]! E# `: e, {$ \5 J9 V
帮助文本(帮助文档)
4 D! r! S; a6 i6 I- y) o, X
4 I+ `/ o, k4 M跟在H1行后,用help命令调出,详细描述函数功能
4 _) L7 O" j% k) V6 C' c
1 ~6 N0 Z: j5 }) E& W9 H- |$ O函数体
6 p$ U/ K, D7 K+ B/ [" L) t3 [8 x% B
+ X/ f# w2 `8 J7 e5 \. H实现函数功能的代码- L) d* j- u, G/ o  w  h% o
2 r' Y  |$ b( U/ J5 d6 |
注释
( F% P9 \2 t7 s6 z6 B+ u( Z: K

- }# ~- p1 N- A6 ^$ n- u" ]
& y5 n" X9 L! u) J/ Y: H  h
# R& b' k; v% m6 C) p
+ l) k; P3 Z8 |' ?8 j7 w+ d2 F9 |0 y) zfunction [ output_args ] = myfun( x,y )2 x* F9 |8 u& J% p

8 c3 H! K$ d6 M$ f. p
0 X3 f. I9 F4 O$ T# N/ J7 L0 Y
; ?8 ?( z! \: iH1行
7 E* ]: Y/ {8 ?
+ \4 N, F, f& K  
' [* @/ M/ ~: v3 G' \H1后的帮助信息
6 h8 [3 l' Q+ D( ~2 A4 R, X/ q
  s% N  B  Q/ N4 C% v8 E( a2 a. T
2 N1 D" o# z; |6 Z" p2 ?/ a% M7 o%caculate
$ ~, c6 U1 Z; z0 n" D' Z8 ~' g7 x& Y' [7 ~; D, h& J" `9 R: u+ y
%  if y does not exist,return x
" B- r2 n6 A' T! y6 R- O
+ i$ c. I6 y: j; r3 _$ F4 M% if y exists,return sqrt(x.^2+y.^2)  |7 c9 C2 v$ Q4 c. c- R
) J/ v" z* ?8 C5 _( H
if(~exist('y','var'))
0 h$ E7 `8 X* w  p8 }! c, H8 D+ f7 X/ K- q0 l$ ]! H0 ^; c, t6 T
    output_args=x;%y不存在
0 o) Q/ w+ D) g8 h) [2 J
: a, n) K# R- z6 _/ Zelse6 Q7 U- ~: l5 m" T0 Y8 ?& r1 Z

% Z, u; o/ A" ~$ C4 n$ J    output_args=sqrt(x.^2+y.^2);
2 z! I" O7 t% K7 D  e8 v' ?
+ L* K/ v9 t! S5 q
, i: O. M( |. g6 n* g3 a% D% j! e2 j- V
end
9 t4 y1 j$ f( c6 M3 g9 _2 P$ @. b# F! L$ d& m
命令窗口:# s- u3 r) |$ C+ z$ Y# [
/ i7 P5 ]$ }1 K2 {2 ]( r
>> myfun(9)2 n$ Z6 D9 x( u1 l& ^* h
8 O0 U3 n. m/ U/ i

+ L) c6 }2 B5 B/ s/ D; q4 R; y% g7 N0 M2 O  o
ans =! c/ O+ p/ {+ x: ]
8 e) y: W, t8 M9 v0 A9 C
: |9 o, J" t, M! @" ?

' o, u( R4 |. K5 ~     9& L4 J+ n% g6 q2 J& |  [

; G! |8 P; m5 ~# H1 J) x4 g: d 8 T8 N4 G! X6 [
# g5 [" \5 D# t$ G6 R" I. s
>> myfun(3,4)
2 ^, S4 Z9 d) v+ T. u" K! k& R8 |. F5 B# D- |

9 W% y2 }; b5 c! [, P7 [* {+ c% k: d' ]  e. @9 P) \
ans =: W4 Y" O; Y, w4 E
% L- n7 t: l+ o
# K6 J6 b+ k0 @7 o4 h
+ R$ T6 i! u. W
     51 o5 [* P9 P5 o/ w6 z- ?9 {0 Z; v+ L
0 w- x5 z! n% E. h5 i
>> help myfun  %帮助信息/ w8 J0 m* a. i! c. O2 {: L9 ?
. k8 I5 f! {' S4 f  m
caculate
) y& L. o8 S2 S  B7 z/ H9 W# n  K1 X/ y
( `: @4 k1 ^2 K; u8 d; U0 B   if y does not exist,return x) w/ F! l6 s- i3 o% J, W) d5 ^# w
7 h5 P7 @8 R1 J% B) G
  if y exists,return sqrt(x.^2+y.^2)- W: r3 O- N/ o  C

4 P& d0 P$ T( L4 C# Z函数体中的语句如果不想输出结果,一般最后加上”;”% L; K% J, v  @: H6 I. s3 J
; B" {" g1 D, U6 N) M4 K
3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
+ V$ w2 \" j1 G+ f9 c
4 H; \( l% n& u& G# L( f& R% k4.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-8-11 14:46 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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