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

Matlab概述

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

; z4 Z: t/ q% K8 i& b2 omatlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体。同时Matlab也是一种编程语言,被称为第四代编程语言。/ Z+ v* w" f. D, N: X' ]
全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写.7 T6 @8 A2 ~3 A$ W7 Y
0 W* N* L$ u8 E. I8 m
Matlab常见的交互界面
9 R8 ]7 M" i' r- j: h●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式。所有操作和运算的结果也会在该窗口中出现(图形结果会单独显示)。
2 M3 }7 U! {' y- X- D, o9 b●Command History(历史命令窗口):记录了用户已经操作过的各种命令,函数和表达式。主要功能:方便用户回忆之前的操作,也可以方便用户对这些历史信息进行编辑(如复制,充运行等)。
  }1 T' t& B# d( _! m8 i. }●Current Folder(当前目录窗口):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MAT文件等。
6 s4 A5 O' u) U" \, Q+ ^& n" v●Workspace(工作空间):在这个窗口中,可以查看工作空间中所有变量的类别,名称,大小等。可以在这个窗口中观察,编辑和提取这些变量。5 H. u9 [7 q3 A' P& e

3 @; D; e" a) P8 E# D默认情况下,命令窗口的数值结果都以format short g 的格式结果显示,这只是matlab数值结果的显示方式,而不是数值计算的精度,在实际存储和计算过程中,使用的都是双精度。- q  A1 ?3 K4 q# w8 S: B7 v: I

! E' Y- N. @* i/ f: R命令窗口标点符号+ @5 W9 b5 n6 C: F; _
●空格,逗号”,”:1.输入变量的间隔  2.数组/矩阵元素的分隔符。
+ H5 d- o7 i$ v# Y●分号”;”:1.命令的结束表示,同时不显示结果。2.数组/矩阵元素的行间分隔符。
0 n8 P2 L8 a( w' I# H! [, P●冒号”:” :1.用于生成一维数值数组,表示一维数组的全部元素或者多维数值某一维的全部元素。详细用法见链接; w) S* A3 I# t
●其他见链接
$ D% T) i, }5 F3 w) J( v; |
' A7 X# s' H/ ?3 {6 V# FMatlab变量命名规则与C++/C#中差不多,由字母,数字,下划线组成。但matlab中变量名第一个字符必须是英文字符,C++/C#中可以是英文和下划线。
0 I5 U' V  i* i0 x7 z  e2 h  s  ~
+ v* ^, L3 e% A9 ~" oMatlab中预定义变量:( p( h- U9 x9 p7 G$ d/ b/ _1 M. E9 @
ans:计算结果的默认名称' s# V$ l: G2 Q, A- k  f" m
eps:计算机的零阈值; Q8 @7 f+ s$ z, R3 i( k
inf(Inf):无穷大,-Inf为负无穷大
% {- w6 g$ A1 o( Y& V2 X! rpi:圆周率. \" k7 e, t" B; W& U
NaN(nan):表示结果或变量不是数值,无法定义的一个数
  u+ @/ c" j3 P# \2 U) w& ^- h虽然matlab没有限制用户使用预定义变量,即可以再matlab的任何文件中将这些预定义变量重新定义,复制。但建议,不要使用matlab预先定义的变量名称。9 a8 E. D+ \5 [* }) S) E6 N
2 F# ^, ?( |' m
Matlab的搜索路径(沿这个路径查找相应的文件,函数或具体数据)
/ J3 ^* \; v0 [6 q0 e) _: O: @搜索过程:如用户在命令窗口中输入命令myMatlab
9 I4 S( k. x2 ^; w  I% h          ●是否是内存中的变量
3 i# x* C5 t# r2 k+ o8 _          ●是否是内置函数1 {( i% J/ o9 a2 {( K

9 e3 g* m, l% p- i          ●是否是当前目录下的M文件* M; D; U" |0 b/ P- I
          ●是否是搜索路径下其他M文件
4 Z+ n" H! H# u5 x# d2 z搜索路径的设置方法:
: O: r, I3 I! w, n5 A7 L+ ?          ●输入pathtool命令或path命令- x! D4 a% \1 W( Y1 e
/ k. c7 l- F4 V3 \% M9 g) O
          ●matlab界面HOME->set path- Z( o9 ~, H3 {' c6 }/ o8 W
$ {& B; e: ?/ {) I5 M
使用path修改的信息只在当前matlab环境中有效,重启matlab后,就无效了。( S" o* \- B  j2 D- N' t8 ^; c
0 |: @  l: i3 y% t
查看变量:1.命令whos  2.用workspace窗口$ S$ ^5 J5 J+ ]& d

  a4 Q8 U2 X1 o  ~6 k5 A! ]* A删除变量:1.命令clear A; 2.用workspace窗口" Y  C( a8 n1 ]1 ^1 X; Q: d' o7 s8 f7 d
2 S3 J9 B8 c3 N' w2 v" u
.mat文件是matlab数据文件,保存工作空间的变量。9 ~! J$ o9 @" `# s. Q5 ^  ^4 Z
/ o' _# q  ?/ t3 ]  |3 [( ^0 b
Matlab区分大小写。% E6 [' h# m! t

3 x7 k* d" ~6 y6 R8 n/ _7 ^5 sMatlab中的变量不用声明,不用定义,拿来即用。/ u# E; [3 [1 L! i
+ N7 {) t( j2 Q6 e' P
输入一条命令,回车,就表示一条命令结束。' X9 S6 A# o2 Q$ ]4 l

, f. B- X) {# v% l0 j: |# PMatlab是解释性语言,在存储结构和计算语句完全相同的情况下,matlab效率比C++慢。
8 J- C( t, p: {0 S
* d5 u$ T% x4 U1.1 M文件  X) L( ~9 ^. }  v# U/ Y
M文件分为1.M脚本文件 2.M函数文件
( x, h# P3 {3 H, U7 X
0 q8 p9 z# g0 B" g; L8 }M文件必须在搜索路径中才能运行。
# \. @6 E- P/ D' G; [9 _; @8 P; @- ~" `7 D" k
1.1.1  M 脚本文件
$ ^, ~* n9 m7 h1.M脚本文件由一组matlab指令构成,其中的语句可以访问matlab工作空间中的所有变量与数据。脚本文件中所有的变量都是全局的,可以被其他脚本文件与函数文件访问,这些全局变量一直保存在内存中。脚本文件中的语句与直接在命令窗口中输入的命令是一样的,只不过封装起来了。
. v0 _+ k& Z* T
3 _, J* \1 T/ V1 H* B2.M脚本文件执行是直接输入脚本文件名就可以了。
4 s! p' O8 @0 b7 ~' q- Z
% t/ D8 @+ n9 g3 p( q, R5 n- s% Z1.1.2 M函数文件
6 _9 c1 [4 Y$ i: K格式:
5 q/ d, S* b- c4 \8 z) K$ {" V" u. z& P) Z7 b
         funtion[输出变量1,输出变量2…]=函数名(输入变量)
4 }  p9 H; N! Y$ ]  h: G; q" \
% j& {% A' `" N. E                          语句;
- K# _% x! p3 v% v8 V
' g  J! B0 D' R) G9 H4 {1.M函数文件的文件名必须与出现在文件第一行的函数名相同,系统根据文件名调用该函数. `: q' V/ p+ D* O" [" H

8 A; ~. |" X# x8 w) g2.M函数文件的组成部分:
2 ?. g+ p3 b7 T1 J3 l# x4 I) T- \1 f, m9 {* q8 _9 g* V
组成部分: ?$ b; I( U2 c* h& V  i
6 ]0 x. M6 O+ o  C( W1 V9 z: z
描述
3 q$ b$ B6 h& R% z* _) K2 b  m2 Z" u! n; }7 ~& |
函数定义行" j5 _0 X/ i) [5 a& o2 u% h1 z
& M8 y, f4 }5 i7 U# K) a9 q( M
定义函数名和输入输出变量7 |) r2 N4 {$ U& W; y5 K. v

) D% k" X# w! V2 n* ?8 P- k. wH1行
# W* f- Q+ F9 m3 Y; i# H2 X( u" x/ T" |+ W# {
描述函数功能,可以用lookfor命令搜索到4 x, j+ ?; z2 x7 A

3 `, X. \( S6 N) I+ @' U6 z帮助文本(帮助文档)
) q& b) @$ ], J; C
3 G, a) v& A  ^7 a  u. b! O跟在H1行后,用help命令调出,详细描述函数功能
, l2 o2 m! ?, I; K/ Q0 A& {' a/ M
函数体/ w$ W: Z/ z3 k: z2 s1 b1 p+ I: ]/ r
+ H$ D+ l+ y  a% n/ L1 @6 F4 k4 P+ F3 h" I
实现函数功能的代码
0 o3 r3 N7 q9 p: E& b: z' o6 n8 F/ ^$ d7 y! ]2 l- P% O
注释0 {& Z6 ^9 U0 V& e5 o

  a0 c# w$ @0 G" y9 L6 t5 @+ U) y2 L: O' s9 t! z
+ u' D/ X  O6 q7 `, v, ~( F% H

/ z- s( ^& x- [0 E: z- O# d/ ^( t# b0 A# g" Q2 p1 z4 N7 g
function [ output_args ] = myfun( x,y )
  H1 T% s9 j" v. C3 }: j2 S
) u- Q& h& d2 _9 z2 u
9 i) w7 |# K9 {+ d
6 {. Q9 f( h* ]0 D' s  |H1行
4 I1 ^+ F' a3 }' \& n9 \! `4 K, s5 j
  3 v* C2 h$ J) g) |
H1后的帮助信息
: H# @0 g" t- w7 q" C( z: a" s0 n5 A; x
$ G, X! h4 g* ~
' E5 ]. A- T, K+ j# O%caculate
' L6 ^$ M" M' O6 b
: {" ]8 k( H2 h%  if y does not exist,return x/ P) H2 i6 |. L1 y4 A7 ]+ Z% v* x

" b+ b' A$ ]1 ?0 k9 F$ T0 q% if y exists,return sqrt(x.^2+y.^2)
* }. w; [+ s- v6 \% u$ h, m
2 g- U/ h$ H& Xif(~exist('y','var'))
* `* I2 I, w& C! d5 @* B  _. p1 ?
/ o- C8 g9 T: k, t, {    output_args=x;%y不存在
! `; W6 P! N- ^/ c: @, l( j4 q1 l( w! s+ z
else# i5 p: N8 I8 }8 l* D- V& @

4 X' A& b8 m1 M, w' X    output_args=sqrt(x.^2+y.^2);4 F/ k$ e) t( j9 g
( ]+ g( R- G; Y) ?6 w- r. [
; w- I7 r1 _+ @: {2 a( i" y
4 R7 q  J( g1 Q1 W% ?1 H
end+ g5 x4 G0 m% n  X" s; V
8 U/ L$ b3 t3 ^1 d- P! d
命令窗口:
0 G. x# u+ U+ q  E! z' k7 e& ~& D% V; i
>> myfun(9)
* T1 o0 m9 u% s) q! ?9 [, [0 ^- v& w$ y9 p8 p/ f
7 b: L/ D% j. _3 @: [, r

" l  m, ^# |  S6 K* ^5 Z( Rans =
- E; C# V+ ~0 B. O7 `* q$ P
5 G2 ]7 H0 g) ~. X: B" V, b 5 x+ P) Y) S) X+ Q- {& k

+ L- T% V) F. A. \     9) a+ r5 A. l7 B% M! J3 a5 H' k

. q0 O& E2 q3 c
5 w# m& p' P; C9 T+ F2 @6 v6 R+ b
+ v+ K6 M" A# U+ \3 @>> myfun(3,4)
) f8 X' s) S' k+ Z- w3 o# b9 B4 Q- c. [3 S5 J
& C0 a  p: E/ H1 g

6 J; s6 l; R# y' Gans =
+ f, b4 Y! J8 Q; ]4 g8 v% t" k; ~
- ]% X8 ^8 M- \' Y  q$ p9 S1 o2 [# b 4 _2 I0 c# T6 M

" O& U6 r* q* A! L, p0 x     5' H9 a$ \+ u+ I+ v& x- q, k+ Z( T& T) y: X

- W' B, Y- X& |7 g& M' P( M. v>> help myfun  %帮助信息
$ ^4 H) z4 |! l- ~9 B& J
. q% [, a$ m9 P( p4 t( U; u caculate8 V7 l' ?$ p5 L9 b

) B7 W, o) C& f' ]   if y does not exist,return x
( X4 ~* i0 F: M; r
/ y  |5 [6 P+ M0 x  if y exists,return sqrt(x.^2+y.^2)0 {7 c# i4 a7 G9 v' P; `6 m9 R

; ]. o2 Z* ^: ~# ?) ?+ j函数体中的语句如果不想输出结果,一般最后加上”;”6 w. O; ^6 y1 X

  _2 k7 B$ C1 i3.函数文件的变量时局部变量,运行期间有效,运行完就自动被清除,而脚本文件的变量时全局的。
! j0 R6 g8 D$ W) M
8 I0 l8 I" s' a0 F; W" b4.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-6-19 07:53 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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