本文目录

前言声明一、MATLAB简介(基本来自课程内容)二、入门操作2.1 命令窗口(Command Window)2.1.1 基本介绍2.1.2 基础指令2.1.3 常用操作

2.2 编辑器窗口(Editor Window)2.2.1 脚本语言

三、基本运算和函数3.1 预定义的变量3.2 符号3.3 符号变量的声明3.4 输入输出函数3.5 常用数学函数总结3.6 逻辑运算

四、绘图4.1 二维函数图像4.1.1 已知点集——plot4.1.2 符号函数——ezplot, fplot4.1.3 图像处理4.1.4 图像导出

4.2 极坐标图 —— polar4.3 三维图形4.3.1 空间曲线图 —— plot34.3.2 空间曲面

4.4 特殊图形4.4.1 填充类图形

后续教程

前言

  MATALB作为工科生几乎都会用到的科学计算软件,大部分大学应该都会购买其版权,因此安装这个软件的人不在少数,即使它占用了15G+的存储空间。但是我发现其实很多人都不会用这个软件,因为安装的时候就是抱着  “我之后可能会用到,先装以备后用” 的心态安装MATLAB,而我当时就是这样的心态。   这两年,前前后后也接触了不少MATLAB的教程,也遇到过很多需要使用的场景,但是发现一个很严重的问题,那就是一段时间不用,之前记住的命令又忘了,于是趁着这个学期学了数学实验课,加上之前学习的一些课程,想简单地以课程为主线总结一下MATLAB的使用,以作备忘。同时穿插一些课程的知识,就当作再次复习一遍了。   之后如果接触了其他需要使用Matlab的课程,也会继续更新。   其他资料可以参考MATLAB中文论坛

声明

  本博客大部分内容来自课程《数学实验》,(少部分来自其他教程)因此本博客不作任何商用,感兴趣的同学欢迎加入MOOC的学习,这是课程链接

一、MATLAB简介(基本来自课程内容)

  数学类科技应用软件包括数值计算(Number Crunching)型软件和数学分析(Math Analysis)型软件

数值计算型软件   它们对大批数据具有较强的管理、计算和可视化能力,运行效率高。代表软件有Matlab,Xmath,Gauss,Mlab等。数学分析型软件   它们以符号计算见长,并可得到解析符号解和任意精度解,但处理大量数据时运行效率低。代表软件有Mathematica,Maple等。

  概括来说,Matlab有五大功能:   对于非计算机专业学生来说,在很多时候,需要完成一个任务时,往往会优先选择Matlab,而不是用某一门编程语言来编程序解决,我认为一个重要的原因就在于Matlab的操作界面非常友善,编程的效率更高,易学易用。

  下面对Matlab的界面做一个简单的介绍。

  如果需要完成比较复杂的任务,也可以在所在的工作文件夹下,右键,新建,脚本,建立.m文件,相当于C语言里面的.c和.cpp文件,然后双击.m文件就会在命令行上方弹出编辑器窗口,拉动边界可以调整命令行和编辑器的大小,如果按住窗口上方往外拖,还可以实现编辑器单独窗口。

  接下来对工具栏和菜单栏做一个简单的介绍。

文件栏主要是对脚本文件的操作变量栏主要是对工作区变量的操作,但一般用得很少,因为如果要查看变量可以直接在工作区双击即可查看环境部分要注意预设和设置路径两个按钮,预设就相当于是设置,可以调节界面,字体,显示语言等;设置路径是在添加第三方工具包的时候需要用到,可以理解为添加插件

  这个工具栏是针对编辑器的,也就是打开编辑器就会自动弹出。这个界面主要是对代码的各种操作

注释:快捷键为CTRL+R取消注释:快捷键为CTRL+T运行节:相比于其他的IDE中需要选中某段代码才能实现运行部分代码,Matlab提供了一种高效的方式,即设置分节符 %%(后面记得加个空格),则用光标选中某个节即可运行某一节代码。设置断点:Matlab设置和VSC一样非常方便,只需要在代码左边点击一下出现红点即可清除断点:点击断点下的那个三角形,就可以选择清除所有断点。

二、入门操作

2.1 命令窗口(Command Window)

2.1.1 基本介绍

  新手入门时最先接触的一定是命令窗口,它最大的特点就是所见即所得,也就是在命令行中随意输入一个命令,按下回车键,即可得到其运算结果,速度非常快,如下所示:   输入“1+1”,再按下回车,即可得到运算结果2,这里ans是answer是缩写,可以认为是系统自带的一个变量,会不断更新。   需要注意的是,随着命令行的输入,在右侧工作区(参考简介中的界面图)会自动添加运算过程中出现的变量,比如此时右边就出现了一个ans的变量,并显示值为2.   注意:这些变量如果不清理会一直存在,且其值也一直保持不变,除非在命令行中对变量进行重新赋值。另外,如果变量是一个矩阵,则不会显示具体的值,而是会显示矩阵的大小。

  命令行回车即显示结果,那可不可以不显示呢?当然可以,只要在最后加上一个英文的分号即可。

2.1.2 基础指令

  再介绍一些使用频率较高的基础指令:

demo :输入demo直接回车可以弹出安装在本地的帮助文档,当然,也可以用浏览器访问在线的帮助文档——Matlab在线帮助文档,善用搜索功能!help :查找具体函数或算法的利器!等同于命令doc,使用方法就是help加上需要查找的内容。类似命令:helpwin (简化版的help)和helpdesk(单独使用,定位到帮助文档首页)clc :清除命令窗口的内容(类似于串口终端的清屏功能)clear :清理右边工作区的变量(慎用!注意与clc区分!)format :设置数据的格式,如下图所示: 另外还有format rat表示运算结果用分数表示。ver :单独使用,查看MatLab和Windows版本。who :显示当前所有变量的名字whos :显示当前所有变量的详细信息。pack :整理工作间的内存load :从文件中导入工作区(一般是mat后缀的文件)save :把工作区的所有变量存入文件中,一般都保存为mat后缀的文件what :显示指定的Matlab文件。lookfor :在help中搜索关键字(排序原则是将包含搜索内容的按数字母排序)which :定位函数或文件path :获取或设置搜索路径echo :命令回显cd :改变当前的工作目录pwd :显示当前的工作目录(这个普适性很强)dir :显示目录内容unix :执行unix命令dos :执行dos命令!:执行操作系统命令computer :显示计算机类型。

2.1.3 常用操作

a. 手动更改变量   如果不想通过命令修改,也可以双击变量,会自动弹出一个类似于Excel的变量界面,可以查看或修改变量。 b. 前后指令复用   当你想在命令行中反复运算一个非常复杂的表达式时,如果不想每次都重新输入一遍怎么办?可以选择复制粘贴,但MatLab提供了一个更好用的方法,那就是通过上下键选择之前输入过的指令,这也是非常常用的功能。 c. 终止当前运算   当你不小心写了一个死循环或者运行了一个庞大的数据文件发现 左下角状态栏 一直显示正忙,想要终止运行又不想关掉软件,就可以使用进程终止操作,Ctrl + C ;另外,如果想关掉Matlab。可以在命令行中输入 Exit 或 Quit ,和点右上角的叉效果相同。

2.2 编辑器窗口(Editor Window)

  编辑器窗口是用来创建.m脚本文件的,和命令行窗口的区别就像是VS Code的文本编辑和终端输入。调出的方法就是在菜单栏中点击新建即会自动弹出一个编辑器窗口:   如果选择保存,会默认保存在左侧的当前文件夹中,类似于一个工作区。   但是需要注意的是,MATLAB的脚本文件的命名也有讲究:

文件名命名要用英文字符,首字符不能是数字或下划线; 文件名不能与matlab的内部函数名相同。 m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成。原因是简单的单词命名容易与matlab内部函数名同名,结果会出现一些莫名其妙的错误; 文件存储路径最好为英文路径。如果用带有中文的路径,某些情况下会出问题。 m文件名中不能有空格。若需要用两个或以上单词组合作为文件名,各单词必须直接连接组合(可以把每个单词首字母大写以作区分,或者使用下划线)。如random walk,应该写成RandomWalk或者Random_Walk。

以上参考链接:https://blog.csdn.net/soya_soya/article/details/8778273

2.2.1 脚本语言

  那么接下来就是编程的环节了,MATLAB脚本语言非常容易上手,但凡有一点C语言或Python的基础差不多就可以了。为方便有编程基础的快速入门,这里只介绍一些和C语言中不一样的地方吧

变量的命名 :只能以字母开头(C语言还可以以下划线开头),且最多不超过19个字符。 全局变量 循环结构:在MatLab中,循环不使用 { } ,而是用end表示循环的结束(不要求缩进),而且if 或while的条件不需要加 ( ) 。参考下面的例程:

/****for循环****/

for n = 1:10 //表示i从1到10逐次+1,循环十次

x(n) = sin(n*10);

end //终止for循环

/****while循环****/

x = 0;

sum = 0;

while x < 101

sum = sum + x;

x = x + 2;

end

/****if-else语句*****/

if x > 1

f = x^2 + 1;

else if x <= 0

f = x^3;

else

f = 2 * x

end

/*****switch语句******/

num = input('请输入一个数');

switch num

case -1 //注意case后面没有冒号

disp('I am a teacher.');

case 0

disp('I am a student.');

case 1

disp('You are a teacher.');

otherwise //等同于C语言中的 default

disp('You are a student.');

end

定义函数 :在MatLab中,写脚本时,不能像C语言一样在该脚本中随便定义一个函数,应该在另一个文件(最好同一目录)中定义。操作方法就是点击新建按钮旁边的三角,选择新建函数。

由此可知,定义函数的格式为 function 因变量 = 函数名 (自变量),且需要在最后加上end,(也可以不加)表示函数结束;保存为.m文件时,文件名和定义的函数名fun1必须要一样;如果需要另外定义一个函数,可以直接在该文件中直接定义,但这个函数不能被其他文件调用,只能被该文件名对应的函数调用。调用该函数时,需要严格按照 定义的函数格式来调用,即输入参数和输出参数应该一一对应。nargin 和 nargout 的用法:nargin可以理解为n_arg_in,即输入参数的个数,同理,nargout表示输出参数的个数,有了这两个永久变量,可以实现Matlab调用函数时的参数可调性,参考下面这个例子:

定义类: 点击新建,选择新建类,得到一个模板:

三、基本运算和函数

3.1 预定义的变量

3.2 符号

a. 运算符号:

  这里尤其需要注意带“.”的运算符!!!   一般来说,带“.”的运算符功能和不带“.”的运算符是一样的,但是在矩阵与矩阵之间的运算时有差别,即带“.”的运算符表示矩阵的每一个元素进行运算,而不是一般的矩阵运算(乘法),参考如下例程:

  一般来说,但凡涉及到向量或者矩阵的运算,都得要考虑是不是得加点号,因为不加可能会报错或者运算结果完全不对,慎重!

b. 其他符号:

% :行注释符,其后这一行的内容为注释,相当于C语言中的 //,如果在脚本中写 %% 并单独成行 ,则表示对代码进行分节,(记得%%后要加空格!)可以使用运行命令中的运行节。 %{和%}:块注释,相当于C语言中的/**/,注意,这里的大括号和百分号是错位的和C语言块注释符不太一样。 ······ :表示续行

3.3 符号变量的声明

  在命令行中随便输入一个a = 10,表明a是一个常数变量,而一般在求导和积分时,几乎都是用符号进行运算,因此,一般都需要在程序运行前声明必要的符号变量,语法如下所示:

x=sym(‘x’) —— 表明x是符号变量

syms x y z —— 定义多个符号变量

  二者之间的区别可以参考这篇链接

syms f(x) —— 定义两个符号变量,f和x,且二者之间还有函数关系 在声明符号函数时,还可以使用inline函数: f = inline(“x^3+5*x”) 或者 ff = inline(‘-x*sin(x^2-x-1)’, ‘x’) 如果不带引号,则其内部的变量都应已知。

  有时候需要多个函数共用一个变量,就可以将变量定义为全局变量,使用指令global,具体用法建议使用help查看。   使用方法是在每个函数中都要声明global val,表示这个变量去全局变量中找,如果任何函数改动这个数值,如val = 0;那么所有函数引用该变量得到的值都会发生改变。

3.4 输入输出函数

  说明:如果不加参数 ‘s’,则输入的内容可以参与运算,比如一个矩阵A,rand(3)等,而加上参数 ‘s’之后,输入的内容都会作为字符串返回。

这部分更详细的内容可以参考后续教程:【MATLAB】(二)使用拾遗

3.5 常用数学函数总结

  对于这些函数,我认为最重要的是知道MATLAB有这个函数,如果确实需要使用,可以利用help命令来查看详细文档。

3.6 逻辑运算

“等于”和“不等于”

== :表示等于,一个 = 表示赋值~= :表示不等于,记住,不是感叹号哦!

逻辑运算符:

逻辑关系函数总结

四、绘图

4.1 二维函数图像

4.1.1 已知点集——plot

plot

4.1.2 符号函数——ezplot, fplot

ezplot fplot

此外,还有fplot函数:

  以这个为例,需要学会看Matlab的应用手册,比如第四行之后,函数括号里面都是用 “____” ,其实是代替前面的那些参数,不能省略。

4.1.3 图像处理

  需要了解的是,在运行Matlab时跳出的fig窗口其实自带了很多编辑图像属性的功能。只需要点开图像属性

  即可对图像标题,坐标轴标签等进行设置。

4.1.4 图像导出

  在用MATLAB生成一张图像之后,很多时候的选择都是直接截图,但是,这样存在一个问题,那就是图像周围灰色的边框无法消除,严重影响了图像的美感:   所以,如果图像需要放到论文或者正式的文档中,建议可以按照如下操作:   这样得到的图像就是矢量图,然后直接到Word中粘贴,看到的图像的背景就是纯白的:

  其他资料:

如何对Matlab的.fig格式图片进行局部放大和修正。如何用MATLAB编辑修改fig文件

4.2 极坐标图 —— polar

polar

   但是现在官网更推荐的函数是 polarplot函数:

4.3 三维图形

4.3.1 空间曲线图 —— plot3

plot3

举个例子:

4.3.2 空间曲面

  其他绘图可以参考https://ww2.mathworks.cn/products/matlab/plot-gallery.html,以及这个:https://matplotlib.org/stable/gallery/index.html。

4.4 特殊图形

4.4.1 填充类图形

  有时候需要画带有填充的柱状图,如下图所示 这个时候就需要用到MATLAB中的fill指令。在MATLAB中使用help指令可以得到其简要介绍: 详细内容建议看帮助文档。

后续教程

【MATLAB】(二)基本使用拾遗【MATLAB】(三)MATLAB在高等数学中的应用【MATLAB】(四)MATLAB在线性代数中的应用

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: