许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  从零开始数学建模学习(1):MATLAB快速入门教程

从零开始数学建模学习(1):MATLAB快速入门教程

阅读数 3
点赞 0
article_banner

01、介绍

       MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析无线通信深度学习图像处理计算机视觉信号处理、量化金融与风险管理、机器人,控制系统等领域。 [1]

       MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、 Fortran  )的编辑模式。 [1]

       MATLAB和MathematicaMaple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对CFORTRANC++JAVA的支持。

       特点:

  • MATLAB可以进行数值计算,可视化和应用程序的开发,这是一个高层次的语言。
  • MATLAB提供了一个互动的环境,探索,设计和解决问题的迭代。
  • MATLAB提供了广阔的线性代数,统计,傅立叶分析,筛选,优化,数值积分,解常微分方程的数学函数库。
  • MATLAB提供了内置的数据可视化工具,用于创建自定义绘制的图形。
  • MATLAB的编程接口给开发工具,提高代码质量和可维护性和性能的最大化。
  • MATLAB提供了自定义的图形界面构建应用程序的工具。
  • MATLAB提供了基于MATLAB算法集成了C,Java,NET和Microsoft Excel等与外部应用程序和语言功能。

       用途:

       MATLAB被广泛用来作为计算工具在科学和工程涵盖领域物理,化学,数学和工程流。它在一定范围内的应用,包括:

  • 数值分析
  • 数值和符号计算
  • 信号处理和通信
  • 控制系统的设计与仿真
  • 图像和视频处理
  • 工程与科学绘图
  • 测试和测量
  • 财务与金融工程
  • 计算生物学
  • 管理与调度优化计算(运筹学)

02、矩阵运算

2.1 什么是矩阵

       由 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]

2.2 矩阵运算

        在矩阵运算中为三则运算即加法、减法、乘法。

       同型矩阵:即行数和列数均相同的矩阵。在矩阵的加、减法运算中,首先要满足同型矩阵的条件。

       矩阵的乘法:(1)数乘矩阵:数乘矩阵结果为该数乘以矩阵中的每一个元素。

                            (2)矩阵乘矩阵:两个矩阵相乘,内标确定能否相乘,外标确定型。

03、编程基础

注释:1、ans为answer的缩写,如果未命名变量,则结果赋给ans

2、MATLAB每行输入结束之后需按回车才可以执行,在结尾打上“;”则不显示结果,不打则在屏幕上显示结果。

3、%后为注释

4、...为续行

5、clc为清除工作区,clear为清除变量

6、向上键可以调出上一个命令行,向下键可以调出后一个命令行

格式命令:

format long 小数点后15位有效数字

format short 小数点后有4位有效数字

format long e 15位科学计数法

format short e 5位科学计数法表示

变量命名规则:

       变量是任何程序语言的基本要素之一,与其他语言不同的是MATLAB不需要声明一个变量的类型。

  • Matlab对大小写敏感
  • 变量名第一个必须为英文字母,长度不能超过31个字符
  • 可以包含字母、数字、下划线

特殊变量名:

  • ans:用于计算结果缺省变量名,当表达式未指定赋值变量时,默认为ans
  • pi:就是π
  • inf:正无穷,也可以写成Inf,负无穷:-inf
  • NaN:表示不定式

MATLAB数值计算:

1、标量运算

       如其他编程语言,如C/C++。

2、一维数组的创建

       采用[]定义数组,然后在方括号内采用键盘直接人工输入。

       调用格式:a=[1,2,3],一位数组之间可以用“,”分隔,也可以用“空格”分隔。数组长度可以用length来计算。列向量用“;”分隔

       冒号自动生产方式:

       x=1:5;

       x=a:h:b;从起始值a开始,以增量h为步长,到终止值b结束的行向量。

       x=linspace(a,b,n):创建从a开始,到终止值为b结束,有n个元素的行向量。

3、一维数组的访问:

       访问一个元素: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)]

4、 二维数组  的构建与运算:

       数组输入首先用[]界定,同一行元素之间用空格或“,”,分隔,不同行之间用分号分隔,或按回车键开始新一行的输入。

二维数组的访问:

  • d=a(1,:) 使用冒号可以寻访全行元素 d=a(:,1) 使用冒号可以寻访全列元素
  • f=a( : ) 单下标寻访 按照单下标标识作为一列显示
  • g=a(:,[1,3]) 寻访地址可以是向量,以同时寻访多个元素

04、常见函数

(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

05、Matlab绘图  

5.1 二维绘图

(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’):给图形顺序添加图例

数学函数:https://blog.csdn.net/minyeling/article/details/105621891?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164464543116780265470497%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164464543116780265470497&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-105621891.pc_search_result_cache&utm_term=matlab%E6%95%B0%E5%AD%A6%E5%87%BD%E6%95%B0&spm=1018.2226.3001.4187

5.2 三维绘图

绘制三位图形:

调用格式:plot(x,y,z,'选项')

功能说明:当x,y,z为同维向量时,绘制以x,y,z为同维向量时,绘制以x,y,z对应元素为数据点的三维曲线;当x,y,z为同维矩阵时,则绘制以对应列元素为坐标的多曲线图,曲线条数等于矩阵的列数。

5.3 绘制三维曲面图

mesh、surf:绘制三维曲面图

meshgrid()函数

  • 函数调用格式:[X,Y] = mershgrid(x,y);
  • 功能说明:生成网格型矩阵

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:由蓝色和绿色阴影组成。

06、运算符

判断

1、==

Matlab用==来判断左右两侧是否相同,若相同返回true(1)不同返回false(0)

2、~=

不等于

3、>    >=   <   <=

大于 大于等于 小于 小于等于

与或非

  • 与:&&
  • 或:||
  • 非:~

07、流程控制语句

if条件语句

if 条件    要执行的内容elseif 条件    要执行的内容else     要执行的内容end

for循环语句

sum = 0for i = 1:100    sum = sum + iend

while 循环

while 条件    表达式end

break 和 continue

  • break是结束整个循环,直接执行循环外的下一句代码。
  • continue是结束本次循环,跳过continue之后的代码,继续进行下一次循环操作。


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

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空