肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > MATLAB学习笔记1:MATLAB概述

MATLAB学习笔记1:MATLAB概述

时间:2018-06-24 03:35:47

相关推荐

阅读前请注意:

1. 该学习笔记是华中师范大学HelloWorld程序设计协会寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳、拓展阅读。博客内容由 @K2SO4钾 撰写、编辑,发布于 @K2SO4钾 的个人投稿与华中师范大学HelloWorld程序设计协会CSDN官方账号 @CCNU_HelloWorld

2. 学习笔记基于《MATLAB Ra完全自学一本通》(刘浩, 韩晶)1 ,笔记中增加了很多程序示例和笔者个人的思考。学习笔记面向刚接触MATLAB的新手,内容偏基础。若欲跟随此笔记学习,推荐入手《MATLAB Rxxxxx完全自学一本通》(书籍名称中MATLAB版本号按照个人的MATLAB版本而定),并在学习之前下载安装MATLAB。笔记中示例用MATLAB版本为MATLAB Ra

3. 请谅解笔记可能会出现的错误,欢迎指正讨论;由于MATLAB更新导致的旧代码无法使用的情况,也欢迎讨论交流。

文章目录

1.0 MATLAB学习笔记:传送门汇总1.1 MATLAB系统组成1.2 MATLAB工作环境1.2.1 菜单栏/工具栏1.2.1.1 主页1.2.1.2 绘图1.2.1.3 APP1.2.1.4 编辑器/实时编辑器1.2.1.5 发布1.2.1.6 视图1.2.2 文件夹栏1.2.3 命令行窗口/编辑器1.2.4 工作区1.3 MATLAB目录结构1.4 MATLAB文件管理1.4.1 查看MATLAB搜索路径1.4.2 设置MATLAB搜索路径1.5 MATLAB帮助系统1.6 MATLAB通用命令1.6.1 MATLAB常用命令1.6.2 MATLAB语言标点符号1.6.3 MATLAB常用快捷键1.7 MATLAB实例1.8 思考题1

1.0 MATLAB学习笔记:传送门汇总

MATLAB学习笔记0:学习须知

MATLAB学习笔记1:MATLAB概述

正在努力更新中,待补全~

1.1 MATLAB系统组成

MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口五部分组成。

MATLAB开发环境

MATLAB开发环境是一个集成化的工作区,用户可以在工作区中输入数据、对M文件集成编译和调试、观察输出、使用工具箱与在线文档等。它包含了MATLAB桌面、命令行窗口、M文件编辑调试器、工作区、在线帮助文档等。

MATLAB数学函数库

包含了众多计算方法的函数库,从简单到复杂一应俱全。

MATLAB语言

MATLAB语言是一个高级的基于矩阵的语言,包括程序流控制、函数、脚本、数据结构、输入输出、工具箱和面向对象编程等特色。因此在C语言的基础上学习MATLAB语言会更加便捷。

MATLAB图形处理系统

MATLAB图形处理系统可以将向量和矩阵可视化,并且可以对图形进行修改、编辑、保存、打印。它可以进行二维、三维绘图,图像、视频帧处理,矩阵信息可视化(例如元胞自动机)。

MATLAB程序接口

MATLAB程序接口便于MATLAB调用C和Fortran程序,可以在MATLAB与其它应用程序之间建立客户/服务器(C/S)关系。

1.2 MATLAB工作环境

在MATLAB安装目录中bin文件夹下双击MATLAB.exe启动MATLAB。进入MATLAB主页面后如图。

由于此时没有新建编辑器文件,即m文件,因此主页面中没有编辑器、发布、视图标签。如果你是第一次使用,那么左侧“当前文件夹”也应当只有bin文件夹中原有的文件和文件夹。

点击左上角“新建脚本”,即可出现编辑器区域。MATLAB主页面被分成4个大区域,菜单栏/工具栏、文件夹栏、命令行窗口/m编辑器、工作区。下面将依次介绍。

1.2.1 菜单栏/工具栏

菜单栏/工具栏中,包含了主页、绘图、APP、编辑器、发布、绘图6个标签。下面介绍每个标签下的部分功能

1.2.1.1 主页

新建脚本

建立新的.m文件,并在编辑器中展示一个未保存的.m文件:Untitled.m。保存后才可运行文件中的MATLAB代码,快捷键Ctrl+N。

新建实时脚本

建立新的.mlx文件,并在编辑器中展示一个未保存的.mlx文件:Untitled.mlx。可直接运行其中的代码。

——————↓——— Q & A ———↓———————

※脚本和实时脚本的区别?

脚本只有保存之后才可运行,运行之后在命令行窗口和图像窗口中输出。实时脚本可存储输出,将输出展示在代码旁,融合了文档和程序

实施脚本的优点:

输出与代码段对应,能便于查找代码中错误、分析代码、浏览;可存为富文本格式的可执行记叙脚本,可以添加标题、题头和格式化文本来描述代码的含义、问题分析过程,也可以添加方程、图像和超链接作为支持材料。可用于创新式授课教学。

相同的代码段用.m文件运行:

用.mlx文件运行:

clc,clear all,close all%% 数据输入figure(1)x=[15.2 17.2 16.8 14.2];y=[9.2 11.3 14 13.1];[X,Y]=bezier(x,y);plot(X,Y,'r','linewidth',3)grid onfigure(2)x=1:16;y=[1 3 6 11 15 17 18 19 20 22 25 ...31 39 48 47 45 40 28];[X,Y]=bezier(x,y);plot(X,Y,'b','linewidth',3)grid onfprintf('执行完成')function [X,Y]=bezier(x,y)n=length(x);t=linspace(0,1);xx=0;yy=0;for k=0:n-1tmp=nchoosek(n-1,k)*t.^k.*(1-t).^(n-1-k);xx=xx+tmp*x(k+1);yy=yy+tmp*y(k+1);endif nargout==2X=xx;Y=yy;endend

.mlx文件可以在代码段中插入文本也可插入注释,.m文件只能在代码段中插入注释。.mlx文件菜单栏中的标签为“实时编辑器”,其功能在“编辑器”的基础上增加了文本功能。

———————↑——— Q & A ———↑——————

新建

建立新的.m文件、.mlx文件、函数、图形、Simulink模型、应用程序等。

打开

可以打开MATLAB的.m文件、.fig文件、.mat文件、.mdl文件、.cdr文件等,快捷键Ctrl+O。

导入数据

从其它文件中导入数据。

保存工作区

把工作区中的变量及数据存为.mat文件

分析代码

分析路径中所有.m、.mlx文件中代码可能存在的错误和问题,并生成分析报告。

Simulink

打开Simulink模块。

布局

调整各页卡的位置、大小。

当你误操作把几个页面卡片弄乱、删除了,或者是想要改变它们的布局,可以在菜单栏中“布局”中调整,恢复默认,或是调整为你想要的布局。

预设

用于预先设置命令窗属性、常规、字体、工作区等。

设置路径

设置工作路径。默认的工作路径是MATLAB文件夹中bin文件夹。

附加功能

可从这里获取包括硬件支持在内的附加功能、管理附加功能,也可以把自己编写的工具箱、APP打包。

帮助

打开帮助文档,或者获取其它形式例如社区的帮助。

1.2.1.2 绘图

在右侧工作区中选中将要绘图的变量,在上方选择绘图方式,可快速得到图像。

1.2.1.3 APP

这里,你可以使用已经下载安装好的各个工具箱和应用程序,也可以获取、安装、设计APP。

1.2.1.4 编辑器/实时编辑器

编辑器中,主要关注“编辑”、“断点”、“运行”。

编辑

在“编辑”一栏中,可以插入节(也可以在代码段中加上“%%”来添加节),也可以添加注释(行注释需要在注释前加“%”,或者使用Ctrl+R快速添加注释,Ctrl+T快速取消注释),也可以对代码进行智能缩进(Ctrl+I)、添加或删除缩进。

断点

断点, 调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析。也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时间。2断点的使用非常重要,对于代码的调试、查错都有很大的帮助。在后续的学习中一定要掌握。

在代码行序号出右键可快速添加、清除、禁用断点。断点在代码行序号中显示为红色,禁用的断点标号上会有一个叉号。

运行

点击“运行”可运行当前编辑器内容,在下拉菜单中可以选择运行的方式。

点击“运行并前进”,程序运行至第一个断点处。此时出现“调试”栏。调试栏中,“继续”可让程序执行至下一个断点,“步进”则是一行一行运行,“步入”“步出”可观察函数内的运行情况,“运行到光标处”程序将运行至光标处,用于跳过一些复杂的循环(因为“步进”会运行每一次循环。当然,使用断点也可以实现这个功能)。这些功能非常重要

选择一个节(即按照“%%”分隔开的代码块),点击“运行节”,即可运行本节内容。

“运行并计时”会打开探查器来查看代码运行的时间。

实时编辑器与编辑器的区别在上文“Q&A”中已述。

1.2.1.5 发布

这里可以将代码与LaTeX关联,可以将结合MATLAB代码、文本、标记的文档生成.html进行发布。

1.2.1.6 视图

如果你觉得需要调整编辑器的视图方式,例如将选项卡位置放在左端、分割编辑器视图或者是其它编辑器的调整,在菜单栏中的“视图”中进行调整即可。

1.2.2 文件夹栏

文件夹栏可以快速打开路径中的.m、.mlx文件,也可查看文本文档(不支持文档中中文的显示)。默认问bin文件夹。可在上方目录中调整路径。

1.2.3 命令行窗口/编辑器

编辑器用于编写MATLAB代码与注释,命令行窗口用于运行单行命令、展示输出

命令行窗口中的“>>”是运算提示符,表示MATLAB处于准备状态等待用户输入指令进行运算。用户输入一段指令并按下Enter之后,MATLAB执行这一段指令并给出这一段指令的运行结果(如果有输出的话),并重新显示“>>”即进入准备状态。

——————↓——— Q & A ———↓———————

※编辑器运行代码和命令行窗口运行代码有何不同?

命令行窗口用于运行单行命令,敲下回车代码即运行,因此无法执行含分支结构、循环结构等复杂结构的代码,同时也无法对代码进行注释,并且在清除命令行窗口(clc)之后会丢失代码。

因此推荐使用编辑器来编写程序,使用命令行窗口来进行运行结果的微调(例如将行向量的结果转换为列向量便于后续操作等)或者运行复制粘贴的一段不需要保存的代码段。

——————↑——— Q & A ———↑———————

1.2.4 工作区

工作区窗口显示当前内存中所有的MATLAB变量的变量名、数据结构、字节数、数据类型等信息,一行对应一个变量。将鼠标放于变量上可以查看其大小和类型(也可在“值”一列查看)。如下图,光标指示位置是一个名为“chrom_range”、类型为double、大小为2行8列的变量。

双击工作区变量,可打开变量对其具体内容进行查看。右键也可对变量进行操作。

菜单栏/工具栏中新建变量、导入数据、保存工作区、清除工作区可对工作区变量进行操作。

在工作区页卡中按下Ctrl+S,可将所有变量保存至.mat文件方便再次使用(避免了反复运行代码的繁琐)。

将.mat文件直接拖入工作区中,即可使用文件中保存的MATLAB变量。

命令行窗口中键入

clear all

回车,即可清除工作区,同时之前打开的变量也会显示“变量不存在”。

在命令行窗口键入save,可以将工作区变量存为.mat文件

————↓———— 提 示 ————↓————

命令行窗口键入clc回车可以清楚命令行窗口哦。

————↑———————————↑————

1.3 MATLAB目录结构

MATLAB文件夹(即MATLAB的安装目录)下一般自带有25个子文件夹,其中部分文件夹需要记住其位置和功能(加粗内容,尤其是bin文件夹)。

1.4 MATLAB文件管理

MATLAB提供了专门的路径搜索器搜索存储在内存中的.m文件与其它相关文件。

我们在编辑器或命令行窗口输入并运行代码时,MATLAB对代码中函数搜索路径如下(以polyfit函数为例):

检查polyfit是不是工作区变量名,不是,则执行下一步;检查polyfit是不是一个内置函数,不是,则执行下一步;检查当前文件夹是否存在名为polyfit.m的文件,没有,则执行下一步;顺序检查所有MATLAB搜索路径中是否存在polyfit.m文件;若上述步骤仍没找到polyfit,MATLAB会给出一条错误信息。

p = polyfit([1,2],[2,5],1)

正如上图,MATLAB无法找到“polyfic”函数,因此会产生报错。而且运行“polyfic”的时间明显比polyfit时间要长,因为MATLAB完整地执行了上述5个搜索步骤。

这样的搜索路径同时也说明,没有在搜索路径的文件和文件夹,一律不能被MATLAB找到。有时我们自己编写的函数无法被MATLAB识别,就需要好好检查一下函数所在的文件夹是否在MATLAB的搜索路径内了。

上述过程同时也说明,我们编写MATLAB代码的.m、.mlx文件也必须在这些搜索路径内,否则就会报错

1.4.1 查看MATLAB搜索路径

在命令行窗口输入“path”回车运行。

path

MATLAB会列出所有搜索路径。

或者在“主页”中点击设置路径”,可以在页卡中查看、添加、删除搜索路径。

1.4.2 设置MATLAB搜索路径

在“主页”中点击设置路径”,或者在命令行窗口中输入“pathtool”,都可以打开设置路径页卡,可以在页卡中查看、添加、删除搜索路径。

pathtool

或者下面两段代码也可以设置搜索路径。

path(path, 'path') % 'path'是待添加的目录完整路径

addpath 'path' -begin% 'path'是待添加的目录完整路径,将新目录添加到搜索路径的开始addpath 'path' -end% 'path'是待添加的目录完整路径,将新目录添加到搜索路径的末端

1.5 MATLAB帮助系统

帮助系统是MATLAB最重要一个部分之一。与MATLAB关联的内建函数、M稳健函数、MEX文件函数等都有对应的使用帮助和函数功能说明。这对于用户初学MATLAB、以MATLAB写代码或工程都具有很大的帮助。

doc

命令行窗口输入“doc”即可打开帮助浏览器,或者在“主页”最右侧找到“帮助”。

doc

代码demos也可直接打开帮助页卡的示例界面。

help

help是最最最最重要也是最常用的一个帮助功能。help FUN的格式调用,便能查询到FUN函数的有关信息、使用方法、调用方法(尤其是调用方法极为重要,help会列出所有该函数可使用的调用方法)。例如我们刚刚举例的polyfit,如果你不知道它是干什么用的,将下面一段代码输入命令行窗口,运行。

help polyfit

命令行窗口会给出其含义、功能、调用方式、相关函数的链接。

lookfor

lookfor函数的调用方式是lookfor topic,其功能是以关键字topic来查找所有相关的M文件。只要某个函数的功能介绍中包含关键字topic(不区分大小写),都会在命令行窗口中列出。

lookfor inverse

1.6 MATLAB通用命令

1.6.1 MATLAB常用命令

下面列出的命令都是用于管理、操作命令行窗口、工作区、变量、窗口、函数、文件、目录。其中需要记住的已加粗。

————↓———— 提 示 ————↓————

养成好习惯,在每次写代码之前加上:

clc,clear all,close all

想一想不加这一段代码可能会有什么影响?

————↑———————————↑————

1.6.2 MATLAB语言标点符号

MATLAB语言中一些标点符号的作用与C语言有所不同,但是同C语言一样,必须使用半角符号,也就是英文符号。这些符号都需要知道其含义并合理运用。

1.6.3 MATLAB常用快捷键

1.7 MATLAB实例

下面通过几段代码来感受一下MATLAB编程吧~

☆ 例1-1:观察下面一段代码,比较分号使用和不使用的区别,观察%、%%的使用。

clc,clear all,close all%% 输入初始数据x=rand(2,3); % 随机生成一个矩阵y=[1,2,3;4,5,6]; % 录入一个矩阵%% 数据操作z=x.*y % 两个矩阵元素相乘res=sin(z)

☆ 例1-2:编写程序计算∑i=110ii\sum_{i=1}^{10}i^{i}∑i=110​ii。如果不使用编辑器而是把代码一行一行用命令行窗口运行,观察这段代码的运行情况。

clc,clear all,close all;sum=0;m=0;for i=1:10m=i^i;sum=sum+m;endfprintf('The answer is %f.',sum)

需要说明的是,学习MATLAB语言时需要明白,这是一个数学分析软件,不需要像C语言一样面向用户,因此不需要让“其他用户”输入数据,也不需要以太正规的方式输出数据(比如像C语言一样每段代码都会有printf(“代码输出结果是”)),不要浪费时间。

1.8 思考题1

☆ 思考题1-1:回忆一下编辑器/实时编辑器,编辑器/命令行窗口,简述它们有什么区别?

☆ 思考题1-2:回忆一下保存、加载工作区变量的指令,清除命令行窗口、清除工作区变量、关闭图像窗口的指令,快速添加、取消注释的快捷键,注释、取消输出、新增节、构造矩阵、构造单元数组的标点符号。

☆ 思考题1-3:小hi在看书的时候看到了函数expand,他不知道是什么意思。你能帮帮他吗?

☆ 思考题1-4:尝试修改下面代码段中的错误,并指出为什么出错。

clc,clear all,close allm=0; % 赋初值A=rand(1,100); % 1行100列的随机数for i=1:100m=rand(1);sum=sum+m*A(i)+0.0000009; % A的第i个数字与随机数m相乘,再加一个常数,累加至sumsum; % 命令行窗口展示输出结果

部分思考题答案

思考题1-3

help expand

思考题1-4

clc,clear all,close allsum=0;m=0; % 赋初值A=rand(1,100); % 1行100列的随机数for i=1:100m=rand(1);sum=sum+m*A(i)+ ...0.0000009; % A的第i个数字与随机数m相乘,再加一个常数,累加至sumendsum % 命令行窗口展示输出结果

第2行,缺少sum的定义,没有赋初值,所以MATLAB就不知道第7行等号右侧的sum是什么东西。

第7行,应加上续行符号“…”,否则不能随意换行。

第9行,for函数缺少一个end,之后会讲到。

第10行,输出sum的结果由于加上“;”而取消了输出。当然,右侧工作区不论加不加分号都可以看到sum的运算结果

撰写:K2SO4钾(华中师范大学)

审核:华中师范大学HelloWorld程序设计协会工作人员

刘浩, 韩晶. MATLAB Ra 完全自学一本通[M]. 北京:电子工业出版社. . ↩︎

断点 - 搜狗百科[EB/OL]. doi: /v64819974.htm?ch=ch.bk.amb&fromTitle=%E6%96%AD%E7%82%B9 ↩︎

如果觉得《MATLAB学习笔记1:MATLAB概述》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。