MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 [1]
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、 Fortran )的编辑模式。 [1]
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
特点:
用途:
MATLAB被广泛用来作为计算工具在科学和工程涵盖领域物理,化学,数学和工程流。它在一定范围内的应用,包括:
由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。记作:

这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数 aij为(i,j)元的矩阵可记为(aij)或(aij)m × n,m×n矩阵A也记作Amn。
元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵 [7] 。
在矩阵运算中为三则运算即加法、减法、乘法。
同型矩阵:即行数和列数均相同的矩阵。在矩阵的加、减法运算中,首先要满足同型矩阵的条件。
矩阵的乘法:(1)数乘矩阵:数乘矩阵结果为该数乘以矩阵中的每一个元素。
(2)矩阵乘矩阵:两个矩阵相乘,内标确定能否相乘,外标确定型。
2、MATLAB每行输入结束之后需按回车才可以执行,在结尾打上“;”则不显示结果,不打则在屏幕上显示结果。
3、%后为注释
4、...为续行
5、clc为清除工作区,clear为清除变量
6、向上键可以调出上一个命令行,向下键可以调出后一个命令行
format long 小数点后15位有效数字
format short 小数点后有4位有效数字
format long e 15位科学计数法
format short e 5位科学计数法表示
变量是任何程序语言的基本要素之一,与其他语言不同的是MATLAB不需要声明一个变量的类型。
如其他编程语言,如C/C++。
采用[]定义数组,然后在方括号内采用键盘直接人工输入。
调用格式:a=[1,2,3],一位数组之间可以用“,”分隔,也可以用“空格”分隔。数组长度可以用length来计算。列向量用“;”分隔
冒号自动生产方式:
x=1:5;
x=a:h:b;从起始值a开始,以增量h为步长,到终止值b结束的行向量。
x=linspace(a,b,n):创建从a开始,到终止值为b结束,有n个元素的行向量。
访问一个元素:x(i)表示访问x的第i个元素
访问一块元素:x(i:j:k)访问数组x,从i个元素开始,以步长j到第k个元素,j可以为负数,j缺省时默认为1
访问指定元素:x([i,j,k])访问数组x中第i、j、k个元素,访问结果构成一个新数组[x(i),x(j),x(k)]
数组输入首先用[]界定,同一行元素之间用空格或“,”,分隔,不同行之间用分号分隔,或按回车键开始新一行的输入。
二维数组的访问:
(1)求和函数sum()
调用格式:sum(A)
功能说明:求数组A的所有元素之和
(2)求前n项和函数cumsum()
调用格式:cumsum(A)
功能说明:求数组A的前n项之和(像是前缀和)
(3)求长度函数length(A)
调用格式:length(A)
功能说明:求矩阵行列数最长的值
(4)求矩阵长宽数:size()
调用格式:[m,n]=size(A)
功能说明:求矩阵行数和列数,分别返回m和n
(5)求平均值:mean()
调用格式:mean =(A)
功能说明:求矩阵的平均值
(6)求最大值最小值:min()max()
调用格式:max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。
(7)求矩阵中不重复的值:unique函数
调用格式:C = unique(A):
功能说明:返回的是和A中一样的值,但是没有重复元素。产生的结果向量按升序排序。
(8)生成随机数:① 随机整数:randi ② 0~1的随机小数 rand
调用格式:s1 = randi(10,2,5);
功能说明:产生一个1至10之间的随机矩阵,大小为2x5
s2 = randi([-5,5],1,10);
产生一个-5至5之间的随机矩阵,大小为1x10;
s3 = rand(1,5);
产生一个0至1之间的随机矩阵,大小为1x5
(9)排序函数:sort
调用格式:c=sort(A,num)
功能说明:对矩阵按从小到大进行排序,若num为1或无num参数时,按列排,若num=2,则按行排
c=sort(A,’descend’)
对数据从大到小进行排列
(10)矩阵的翻转:fliplr、flipud
调用格式:c=fliplr(A)、c=flipud(A)
功能说明:将矩阵A进行左右翻转(fliplr),对矩阵A进行上下翻转(flipud)
(11)查找函数 find
调用格式1:B = find(A)
功能说明:查找A中的非0元素,返回值B为A中非0元素的位置
调用格式2:B = find(A>2)
功能说明:找到A中比2大的元素的位置
(12)xlsread()
调用格式:a = xlsread(‘’);括号内填Excel地址,导入成一个矩阵
(13)自定义函数
自定义函数
调用格式
function 输出参数 = 函数名(输入参数)
函数体
end
(1)常见的二维图形的绘制,Matlab常用的二维图形绘制函数是plot()函数,其调用格式有两种,分别如下:
①plot(y,‘选项’)
若y为一实数数组或向量,则以y的下标序号为横坐标,以y对应元素值作为纵坐标绘制二维图形,若y为实数矩阵,则按每列中元素的下标作为横坐标,元素的值为纵坐标绘制多条连续曲线,曲线条数即为矩阵列数。
②plot(x,y,'选项')
属性设置:
若x,y为向量,则以对应元素为横、纵坐标绘制二维图形。图形属性设置:为了使图形更具表现力,更加被清晰易读,常常需要对图形的若干属性进行设置,其中最重要的是设置曲线的类型、颜色和数据点标记。

绘制多条曲线:利用hold on命令进行叠加
辅助绘图函数:
title(‘字符串’):指定图形标题
xlabel('字符串'):添加x坐标轴标注
ylabel('字符串'):添加y坐标轴标注
text(x,y,'字符串或者表达式'):在指定图形坐标(x,y)处添加字符串或表达式。
gtext(‘字符串或表达式’):移动鼠标指针指定推行坐标位置添加字符串或表达式。
grid on:给图形添加网格
legend('字符串1’,‘字符串2’):给图形顺序添加图例
绘制三位图形:
调用格式:plot(x,y,z,'选项')
功能说明:当x,y,z为同维向量时,绘制以x,y,z为同维向量时,绘制以x,y,z对应元素为数据点的三维曲线;当x,y,z为同维矩阵时,则绘制以对应列元素为坐标的多曲线图,曲线条数等于矩阵的列数。
mesh、surf:绘制三维曲面图
meshgrid()函数
mesh和surf函数的区别:
•mesh命令绘制的图形是一个一排排的彩色曲线组成的网格图,
•而surf命令绘制得到的是着色的三维曲面。
•可以用 shading interp命令来去掉图像上的网格线
colorbar和colormap
•colorbar:添加色标
•colormap:设置图片配色
contourf函数
调用格式:contourf(x,y,z)
matlab中的颜色查找表函数:
(1)autumn:从红色向橘黄色、黄色平稳过渡;
(2)bone:为含有较高的蓝色组分的gray颜色查找表;
(3)colorcube:包含RGB颜色空间中尽可能多的规则间隔的颜色,它试图提供更多的灰色、纯红、纯绿和纯蓝;
(4)cool:由青色和洋红阴影组成的颜色。在青色和洋红间平滑过渡;
(5)copper:在黑色和亮铜色间平滑过渡;
(6)flag:由红、白、蓝、黑组成。每次索引值增加时,该颜色查找表会完全改变颜色;
(7)gray:线性灰阶颜色查找表;
(8)hot:在黑、红、橘红、黄、白间平滑过渡;
(9)hsv:颜色从红色开始,然后为黄、绿、青、蓝、洋红,最后是红色。特别适合显示周期性函数;
(10)jet:在蓝、青、黄、橘红、红色间过渡;
(11)lines:生成颜色由坐标系对象的colororder属性和灰色阴影确定;
(12)pink:包含品红色的柔和阴影。可以对灰度照片进行棕褐色化;
(13)prism:重复红、橘红、黄、绿、蓝、紫色;
(14)spring:由洋红和黄色阴影组成;
(15)summer:由绿色和黄色阴影组成;
(16)white:白色;
(17)winter:由蓝色和绿色阴影组成。
1、==
Matlab用==来判断左右两侧是否相同,若相同返回true(1)不同返回false(0)
2、~=
不等于
3、> >= < <=
大于 大于等于 小于 小于等于
if条件语句
if 条件 要执行的内容elseif 条件 要执行的内容else 要执行的内容endfor循环语句
sum = 0for i = 1:100 sum = sum + iendwhile 循环
while 条件 表达式endbreak 和 continue

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删