简介
MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用 MATLAB,可以较使用传统的编程语言(如 C、C++ 和 Fortran)更快地解决技术计算问题。
应用范围:包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。MATLAB 提供了很多用于记录和分享工作成果的功能。可以将您的 MATLAB 代码与其他语言和应用程序集成,来分发您的 MATLAB 算法和应用。
主要功能:
此高级语言可用于技术计算
此开发环境可对代码、文件和数据进行管理
交互式工具可以按迭代的方式探查、设计及求解问题
数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等
二维和三维图形函数可用于可视化数据
各种工具可用于构建自定义的图形用户界面
各种函数可将基于 MATLAB 的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成。
版本说明
从MATLAB 4.2c开始,每个版本增加了一个建造编号;
例如MATLAB7.6的建造标号是R2008a。说明MATLAB7.6与MATLAB2008a是等同的;
对于建造编号,愈来愈正规化以后,每年出两个版本,例如2011a和2011b。一般来说。a是测试版,b是正式版。从出版时间上看,a是前半年出,b是后半年出。
安装工具包
MATLAB安装voicebox的步骤
下载安装包
解压voicebox.zip,将整个目录voicebox复制到MATLAB的安装目录的TOOLBOX目录下,如D:\MATLAB7\toolbox\
打开Matlab,在MATLAB命令窗口中输入以下命令:
将TOOLBOX下新加的voicebox工具箱加到MATLAB的搜索路径中去:
1
cd D:\MATLAB7\toolbox\voicebox
添加voicebox工具箱的MATLAB的搜索路径也可采用如下指令:
1
2
3>> addpath(genpath('D:\MATLAB7\toolbox\voicebox'))
% 或者
>>path('D:\MATLAB7\toolbox\voicebox',path)
检验是否成功设置的方法:
在命令窗口中输入以下命令:which activlev.m(可以为所加工具箱的任一个M
文件名称),如果显示正确,就说明上面的设置成功。1
>> which activlev.m
结果:
D:\MATLAB7\toolbox\voicebox\activlev.m
添加工具包:
将下载的安装包复制matlab安装目录下面的
toolbox
文件夹中;打开软件;file -> setpath -> Add with subfolders;
将要导入的工具箱所在的文件夹(该文件夹必须在MATLAB的toolbox文件夹中)添加;保存即可。
验证:在命令行中输入改行代码:’ which [此处为该工具箱中任意一个函数]’;输出结果若不报错,则说明导入成功。
matlab调试注意点
注释一段代码,使用如下方式:
Ctrl+R 注释选定的整段代码;相当于text->Comment; Ctrl+T 取消注释的整段代码;相当于text->Uncomment;
报错
Subscripted assignment dimension mismatch. 表示矩阵的下标不匹配,可能是给矩阵赋值的过程中没有对齐下标
代码调试
Ctrl+C 停止运行代码 F5 运行代码
乘和点乘的区别:
a*b就是矩阵乘法 a.*b就是a,b的对应元素相乘
MATLAB查看小波基,在命令窗口输入:
1
wavemngr('read',1)
运行程序时,想要在在命令窗口显示程序中一个变量的值:
只需要在求取这个变量时,后面不加分号,就表示将这个变量在命令行窗口中显示其值
只需要在求取这个变量时,后面不加分号,就表示将这个变量在命令行窗口中显示其值
例如:
[easy_a,easy_p,easy_r,easy_f] = mea_badsig(easy_out)
计算程序的运行时间
- 在开头加上
tic
,结尾加上t=toc
;t就是代码运行时间。(不用加分号)
- 在开头加上
转义符:
''单引号 %%字符百分比 \\反斜杠 \ a报警 \ b退格 \ f换页 \ n新行 \ r回车 \ t水平制表符 \ v垂直选项卡 \ xN十六进制数, N\ N八进制数,
代码运行计时
1
2
3tic
% 运行主函数代码
toc之后在command window下面会显示:
Elapsed time is xxx seconds.
的信息
常用函数
MATLAB中一些判断函数
isscalar
:判断A是否是标量,即一行一列的矩阵。isnumeric
:判断输入参数是否是数字类型(包括浮点型和整型)。isnan
:判断数组中的元素是否为无穷大。iscell
:判断给定数组是否是元胞数组。isfield
:判断输入是否是结构体数组的域(成员)。isvector
:判断是否为单行或者单列(也可以是单个元素),若是二维及以上的数据,则返回0。如果为真,则返回1(true,否则0(false)。
取整
fix(x)
: 截尾取整.fix( [3.12 -3.12]) 结果 3 -3
floor(x)
:不超过x 的最大整数.(高斯取整)floor( [3.12 -3.12]) 结果 3 -4
ceil(x)
: 大于x 的最小整数ceil( [3.12 -3.12]) 结果 4 -3
round(x)
:取最近的整数,相当于四舍五入取整round([3.12 -3.12]) 结果 3 -3
取余数
rem(n,m)
或mod(n,m)
mod 模数求余
rem 求余数
求平方根
sqrt(a)
取FFT变换:
1 |
Y = fft(S,N); %做FFT变换,S为信号的序列,N变换的点数 |
取均值 :
- mean函数的作用主要是求列或行的平均数:
% 下面参数说明:A是矩阵、函数原型:mean(A , dim),若dim缺省,则默认dim=1,求列平均
对列求平均数:
mean(A , 1) = mean(A) % dim = 1可以简写
对行求平均数:
mean(A , 2)
mean2():相当于对整一个矩阵求像素平均值: