最近准备研究生毕业论文了,要用matlab处理大量的数据,这里将自己学习matlab过程中的一些笔记整理在这里。

  1. MATLAB系统环境
    首先展示一下matlab的操作界面,我这里用的是2016版本的matlab,其他版本的大同小异。

    【1】MATLAB主窗口
    主窗口分为3部分,分别是功能区,快速访问工具栏和当前文件操作区,都有一些简单方便的操作,具体不一一例举了。功能区分为三个板块:主页‘、绘图、应用程序。
    【2】命令行窗口
    命令行窗口用于输入命令并显示命令的执行结果,大部分操作都是在命令行窗口中进行完成的,>>为命令行的命令提示符,表示matlab处于准备状态,可以接收并执行matlab命令。

在命令提示符后面输入matlab命令并按回车键,matlab就会执行命令并将结果显示在后面。【注意分号的使用】

如果一行式子太长的话,可以使用续行符,就是英文的三个点:…

如上图所示,注意续行符跟式子之间要有一个空格,不然会报错

【3】当前文件夹窗口
为了方便管理文件,可以将文件夹设置为当前文件夹,那么在命令行的操作都在当前文件夹下执行

如何设置当前文件夹呢?
1,在当前文件夹区域或者当前文件夹路径【路径可以修改】,自己选择某文件夹为当前文件夹。
2,使用cd命令。这个要注意,一定要先建立文件夹,再用cd命令设置为当前文件夹。

【4】工作区窗口
工作区也称为工作空间,它是matlab用于存储各种变量和结果的内存空间,工作区窗口可用于变量的显示和操作

例如在命令窗口创建两个变量,同时会在工作区以表格形式显示变量

同时也能在工作区对变量进行编辑、保存等操作
【5】MATLAB的搜索路径
搜索顺序:变量–内部函数–程序文件。

如何设置文件搜索路径呢
1,用path命令设置文件夹搜索路径。例如:>>path(path,‘e:\work’)
2,用对话框设置文件搜索路径。

通过这两种路径,将自己的工作文件夹纳入到matlab的搜索文件路径中,matlab就能直接搜索到你的工作文件夹下面的文件了。

  1. MATLAB数值数据
    matlab数据类型的分类有三种:整型、浮点型和复数型。
    【1】整型
    1,无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、无符号64位整数。
    2,带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、带符号64位整数。
    取值范围如下图所示:
    matlab提供了数据类型转换函数来实现数据类型的转换,例如,uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数。

    这里调用int8函数将129转换为带符号8位整数,因为带符号8位整型数据最大值为127,所以结果为最大值127。

    上图所示,调用uint8函数将数值转换为无符号8位整型数据,因为无符号8位整型数据的最大值是255,129没有超过范围,所以这里能正常转化。
    【2】浮点型
    浮点型数据分为单精度型和双精度类型,单精度型实数在内存中占用4个字节,而双精度型实数在内存中占用8个字节,所以双精度型的数据精度更高。在matlab中,数值数据默认为双精度型。

    这里对上述函数举个例子

    【3】复数类型
    复数类型数据包含实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用i或j表示。

    如上图所示,都是一样的。

    数值数据的输出格式:format 格式符
    例如:

    第一条格式符为long类型数据,所以输出16.6666666…。第二个没有写格式符,按默认short类型输出。这里要注意,format命令值影响数据输出格式,不影响数据的计算和存储。

常用数学函数:
1,函数的调用格式为:函数名(函数自变量的值)
函数的自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例。函数在运算时是将函数逐项作用于矩阵的每个元素上,所以最后运算的结果就是一个与自变量同型的矩阵。
2,常用函数的应用
(1)三角函数有以弧度为单位的函数和以角为单位的函数。如果是以角为单位的函数,就在函数名后面加“d”,以示区分。

(2)abs函数可以求实数的绝对值、复数的模、字符串的ASCll码值。(3)用于取整的函数有以下几种:

  • fix:固定取靠近0的那个整数,就是舍去小数取整。
  • floor:向下取整,取小于等于这个数的第一个整数。
  • ceil:向上取整,取大于等于这个数的第一个整数。
  • round:按照四舍五入的规则取整


4,函数应用举例。

具体程序如下图所示

例子2:求1到100区间的所有素数。
提示:matlab提供了一个判断n是否为素数的函数isprime(n),当n是素数时返回1,否则返回0。
代码如下所示:

>> x=1:100;
>> k=isprime(x);
>> k1=find(k);
>> p=x(k1)p =1 至 8 列2     3     5     7    11    13    17    199 至 16 列23    29    31    37    41    43    47    5317 至 24 列59    61    67    71    73    79    83    8925 列97

第一条命令生成1到100所有数字组成的整数向量x,第二条调用isprime函数生成k向量,k向量中的元素要么为1,要么为0,取决于x向量对应数字是否为素数,第三条调用find函数生成k1向量,k1向量中的元素为k向量中非0元素的序号,也就是x向量中素数的序号,第四条命令输出x中的所有素数。

  • 变量及其操作
    计算机所处理的数据,都是存储在内存单元中的,而每个内存单元,都有一个唯一的地址,程序就是通过这个地址来访问内存单元的。在高级语言中,只需要给每个内存单元取一个名字,然后通过这个名字就能够访问每个内存单元了。
    (1)变量与赋值语句
    变量的本质就是内存单元的一个抽象。在matlab中,变量名是以字母开头,后接字母、数字或者下划线的字符序列,最多63个字符。

    变量名区分字母的大小写,并且标准函数名以及命令名必须用小写字母。
    赋值语句有两种格式:变量=表达式,表达式。如果在表达式后面加上分号,那么仅仅执行赋值操作, 不会显示运算后变量的结果。
    例题:

    (2)预定义变量
    预定义变量是由系统本身定义的变量。这里举几个例子:

    (3)变量的管理
  • 内存变量的删除与修改:除了可以在工作区窗口用鼠标选中变量,右键直接修改外,还可以用命令的形式修改
  • 内存变量文件:用于保存matlab工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件。
  1. MATLAB矩阵的表示
    矩阵是matlab最基本的数据对象,matlab的大部分运算或者是命令都是在矩阵运算的意义下进行的,在matlab中,矩阵的使用非常灵活。不需要对矩阵的类型和维数进行说明,就会根据你所输入的内容,自动进行设置。
    1,矩阵的建立有以下方法,
    (1)直接输入法:利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或者空格分隔,不同行的元素之间用分号分隔。(2)利用已经建立好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成。
    (3)可以用实部矩阵和虚部矩阵构成复数矩阵:

    (4)冒号表达式
    向量是矩阵的特殊类型,在matlab中,可以利用冒号表达式产生行向量,格式:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。步长可以省略,默认值为1。

    还可以用linspace函数产生行向量,格式:linspace(a,b,n),a是生成向量的第一个元素,b是最后一个元素,n是元素总数。n省略时,默认为100。

    2,结构矩阵和单元矩阵
    (1)结构矩阵
    在实际应用中,经常会遇到由多种数据类型组成的数据实体,例如一个学生的数据就包括了姓名,性别,学号等数据项,这些不同类型的数据项是相互联系的,如果分开来表示,就无法体现数据的整体。结构数据类型可以把一组数据类型不同而逻辑上又相互关联的数据组成一个有机的整体,其中每个数据都构成了这个结构数据的成员,由结构数据构成的矩阵就叫做结构矩阵,结构矩阵中的每个元素就是结构数据类型。
    建立结构矩阵,可以采用给结构矩阵的成员赋值的方法来实现。
    格式:结构矩阵元素.成员名=表达式
    例如要建立含有三个元素的结构矩阵a,

    (2)单元矩阵
    建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵要用大括号括起来。

  2. 矩阵元素的引用
    在很多情况下,我们都需要对矩阵下的元素进行操作,那么矩阵元素的引用就变得很重要了
    【1】,矩阵元素的引用方式:
    1,通过下标来引用矩阵元素,下标必须为正整数,而且要用圆括号括起来。例如A(3,2)表示A矩阵第三行第二列的元素。给这个元素赋值200:A(3,2)=200。如果给出的下标大于原来矩阵的行列数,那么结果将自动扩展原矩阵的行列数,扩展后并没有赋值的元素默认为0,例如:
    2,通过序号来引用
    在matlab中,矩阵元素按列存储,就是首先存储矩阵的第一列元素,然后是第二列…一直到矩阵的最后一列元素。矩阵元素的序号就是矩阵元素在内存中的排列顺序。

    序号与下标是一一对应的,以m*n矩阵A为例子,矩阵元素A(i,j)的序号为(j-1)*m+i。
    矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现相互转换。
    sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:D=sub2ind(S,I,J)。S表示要转换的矩阵的行数和列数组成的向量,通常用size函数来获取,I表示要转换矩阵元素的行下标,J表示要转换矩阵元素的列下标。

    ind2sub函数:将矩阵元的序号转换成对应的下标,其调用格式为:[I,J]=ind2sub(S,D)。S表示要转换的矩阵的行数和列数组成的向量,D是序号。


    冒号表达式获得子矩阵:

    举例子:

end运算符:表示某一维的末尾元素下标。

可以利用空矩阵来删除矩阵的元素。

如果要将某些矩阵元素删除,将这些元素赋值为空矩阵即可。

还可以不改变元素总数的情况下,改变矩阵的形状。
reshape(A,m,n):在矩阵总元素保持不变的情况下,将矩阵A重新排成m*n的二维矩阵。
注意:reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。

还可以这样使用:A(:):将矩阵A的每一个元素堆叠起来,成为一个列向量。

  1. MATLAB基本运算
    matlab基本运算包括算术运算、关系运算和逻辑运算。
    1,算术运算
    基本算术运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。matlab的运算都是在矩阵意义下进行的,单个数据的算术运算只是矩阵运算的一种特例。
    加减运算:若两矩阵同型,则运算是两矩阵的相应元素相加减。不同型时将会报错。一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。
    乘法运算:矩阵A和矩阵B进行乘法运算,要求A的列数和B的行数相等,此时则称A、B矩阵是可乘的,或称A和B矩阵维数和大小相容。如果A和B矩阵维数或大小不相容,则报错。
    除法运算:在matlab中,有两种矩阵除法运算:右除和左除。如果A矩阵是非奇异方阵,则B/A等效于B*inv(A),A\B等效于inv(A)*B。对于矩阵来说,右除和左除表示两种不同的除数矩阵和被除数矩阵关系。
    乘方运算:一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。

    matlab中有一种特殊的运算,叫做点运算,就是在基本运算符之前加一个点。点运算符:.*./.\.^。两个矩阵进行点运算是指他们的对应元素进行相关运算,要求;两矩阵同型。

    点运算是matlab很有特色的一个运算符,在实际应用中起着很重要的作用。

    2,关系运算
    基本关系运算符:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、~=(不等于)。
    当两个比较量是标量时,直接比较两个数的大小。若关系成立,关系表达式的结果为1,否则为0。
    当参与比较的量是两个同型矩阵时,比较的是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    当参与比较的一个是标量,一个是矩阵时,则把标量与矩阵的每个元素按标量关系运算规则逐个进行比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    例题:

    3,逻辑运算
    基本逻辑运算符:&(与)、|(或)和~(非)。
    在算术运算、关系运算和逻辑运算中,算术运算的优先级最高,逻辑运算优先级最低,但逻辑非运算是单目运算,它的优先级比双目运算要高。

    当参与逻辑运算的是两个同型矩阵时,比较的是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    当参与逻辑运算的一个是标量,一个是矩阵时,则把标量与矩阵的每个元素按标量关系运算规则逐个进行比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或0组成。
    例题:

  2. 字符串处理
    matlab中还有一种字符型数据,也叫做字符串数据,字符串是用单引号括起来的字符序列
    若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。

    还可以建立多行字符串,形成字符串矩阵

    例题应用:
    matlab里面有一些常用的字符串函数:

    字符串也可以进行比较,字符串的比较有两种方法,利用关系运算符或字符串比较函数。

    字符串比较函数:

    看看例子:

字符串的查找替换
例子:

MATLAB学习笔记一:基础知识相关推荐

  1. php基础教学笔记,php学习笔记:基础知识

    php学习笔记:基础知识 2.每行结尾不允许有多余的空格 3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的 4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其 ...

  2. 【学习笔记--FMCW基础知识】

    学习笔记--FMCW基础知识 前言 mmWave测距原理 mmWave区分多个物体 mmWave的距离分辨率(Range Solution) mmWave的最大测量距离 前言 由于工作原因需要了解TI ...

  3. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

  4. SAS学习笔记1——基础知识(库、PDV、变量选择、观测值排序、创建新变量

    SAS学习笔记1--基础知识 1.逻辑库.临时库.永久库 2.数据步 2.1数据步语法 2.2 数据步的编译和执行过程 2.3变量的选择 2.3.1 keep和drop语句 2.4变量的重命名rena ...

  5. JS学习笔记——入门基础知识总结

    JS入门基础知识总结1 前言 基础背景知识 一.产生历史: 二.特点: 三.应用方向: 四.Javascript组成: JavaScript书写使用方式 一.行内式(了解即可,项目中不使用,日常练习尽 ...

  6. 《UNIX 环境高级编程》学习笔记——UNIX 基础知识

    UNIX环境高级编程--UNIX 基础知识 引言 UNIX 体系结构 登录 文件和目录 输入和输出 程序和进程 出错处理 用户标识 信号 时间值 系统调用和库函数 引言 所有操作系统都为它们所允许的程 ...

  7. 单片机学习笔记——微机基础知识

    微机基础知识 微处理器,微机和单片机概念 微处理器的组成 一.运算器 主要寄存器 主要寄存器(IR),指令译码器(ID) 程序计数器(PC) 地址寄存器(AR) 二.控制器 存储器和输入输出接口 一. ...

  8. CAN总线学习笔记 | CAN基础知识介绍

    一.CAN协议 1.1 CAN协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为 ...

  9. WebGL学习笔记(基础知识篇)

    WEBGL基础知识介绍 1.场景(scene) 场景如其名,即显示3D空间内物体的容器,就好比一个箱子是一个3D场景. 2.坐标系: webgl使用笛卡尔坐标系(宽度.高度和深度),我们也可以指定使用 ...

  10. RocketMQ学习笔记:基础知识和安装启动

    这是本人学习的总结,主要学习资料如下 马士兵教育 rocketMq官方文档 目录 1.架构 2.基本概念 3.安装和启动 3.1.命令行启动 3.1.1.启动Server 3.1.2.启动Broker ...

最新文章

  1. spring开发_Spring+Struts2
  2. iOS 汉字转拼音 PinYin4Objc
  3. 2015年php行情最好,2015年度最流行PHP框架调查结果出炉,Laravel居首
  4. yar java_Yar 的传输协议学习以及 Java 版本的实现
  5. java swt 菜鸟教程_编程基础学习JS的入门教程
  6. Node.js的交互式解释器(REPL)
  7. jbpm系列之五--使用decision节点判断分支情况
  8. perl开发工具大全
  9. 论文浅尝 - WSDM20 | 基于弱监督及逐步推理的多关系知识图谱问答
  10. 舰r4月28服务器维护,崩坏3 11月28日版本更新维护通知
  11. python实践项目(五)
  12. linux定义数据结构压缩,Linux下数据结构学习笔记
  13. WoMic虚拟麦克风技术剖析
  14. uRPF Unicast Reverse Path Forwarding
  15. 【MySQL】全文索引详解
  16. 如何理解模块、组件和对象
  17. Pycharm 下载模块中出现的 Error 解决方法
  18. Hibernate开发之创建POJO-配置文件-映射文件
  19. [BugKu Web]ez_serialize
  20. 趣店财报:最会赚钱的趣店亏了

热门文章

  1. 前端工具字典,为你开发路上披荆斩棘
  2. 律师:“信用卡代还业务”今年或有牢狱之灾
  3. 发布汇编集成编译器Win-Masm v2.2
  4. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表……
  5. 英语基础-英语的句子中的谓语
  6. TFT彩屏常见汉字取模方式及相关驱动函数
  7. Random与ThreadLocalRandom 解析
  8. 写JS代码让自己头秃的点
  9. Python爬虫:制作一个属于自己的IP代理模块2
  10. 上海为什么更需要“自贸区”?