MATLAB 基础知识

  • 1. MATLAB 是什么?
  • 2. MATLAB 的搜索路径
  • 3. MATLAB 数值类型
  • 4. 变量与赋值
  • 5. MATLAB 矩阵的表示
  • 6. 矩阵元素的引用
  • 7. 改变矩阵
  • 8. MATLAB 基本运算
  • 9. 字符串处理

1. MATLAB 是什么?

在数学计算中,我们一些简单的运算如加、减、乘、除、开放等或者较为复杂的运算如三角函数、积分、多项式求根等都可以通过人工手算出来,而当需要求解的问题变得复杂而用传统数学方法无法求出精确解时,如求定积分可能无法求得被积函数的原函数、对于超越方程求其精确解时,就可以利用计算机即快速又精确地求解。

MATLAB(MATrix LABoratory 矩阵实验室) 是一种科学计算软件,它擅长于矩阵运算,语法简单,且集成有许多领域专家为各自领域开发的工具箱,直接调用即可。这样就为各个领域的人们提供了很大的便利,人们无需有很强的数学专业知识和计算机专业知识,就可以直接使用 MATLAB 来专注于实际问题的分析和设计,大大提高了工作效率和质量。

MATLAB 的主要功能是:数值计算、符号计算、图形绘制、程序流程控制和为各个领域提供的工具箱。


2. MATLAB 的搜索路径


3. MATLAB 数值类型

(1)整型

  • int8 函数将数值数据转换为带符号8位整数
  • uint8 函数将数值转换为无符号8位整数

(2)浮点型

单精度型实数在内存中占用4个字节,双精度型实数在内存中占用8个字节。MATLAB 中数值数据默认是双精度型

  • single 函数将其他类型的数据转换为单精度型
  • double 函数将其他类型数据转换为双精度型

(3)复型

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

  • real 函数求复数的实部
  • imag 函数求复数的虚部

format:数值数据的输出格式

format 格式符
例:>>format long

常用数学函数格式

函数名(函数自变量的值):函数自变量规定为矩阵变量,当然也可以是标量,标量本身是矩阵的一种特例。

常用函数的应用:

  • 三角函数有以弧度为单位和以角度为单位的函数。如果以角度为单位的函数就在函数名后面加“ d ”(degree 的缩写),以示区别。如 >>sin(pi/2) 和 >>sind(90).
  • abs 函数可以求实数的绝对值、负数的模、字符串的 ASCII 码值。
  • 用于取整的函数有fix、floor、ceil、round。
    ① round 函数按照四舍五入的规则取整。
    ② ceil 函数是按向上取整,取大于等于这个数的第一个整数。
    ③ floor 函数是向下取整,取小于等于这个数的第一个整数。
    ④ fix 函数是固定取靠近 0 的那个整数,即舍去小数取整。

4. 变量与赋值

(1)变量

  • 变量名区分字母大小写。
  • 标准函数名以及命令名必须用小写字母。

(2)赋值

  • 变量 = 表达式
  • 表达式(将表达式的值赋给 MATLAB 中的预定义变量 ans

如果在表达式后面加 ‘ ; ’,则 MATLAB 直接赋值,不会输出结果。

(3)预定义变量

  • ans 是默认赋值变量;
  • i 和 j 代表虚数单位;
  • pi 代表圆周率;
  • NaN 代表非数(Not A Number,当数据缺失或绘图时挖掉一部分时用)

(4)变量管理

① 工作区窗口右键可以修改变量值;
② 输入命令:

who :显示变量名称

whos :显示变量名称、大小、字节数、数据类型

③ 可以保存 MATLAB 工作区变量的文件即内存变量文件(.mat)。

save :创建内存变量文件
例:save mydata a x  将 a 和 x 的数据保存在mydata.mat 文件中

load :装入内存变量文件
例:load mydata  将 mydata 中的数据载入到 MATLAB 中


5. MATLAB 矩阵的表示

(1)矩阵的建立

① 直接法:矩阵中元素用 中括号 [ ] 括起来,同一行之间用 逗号空格 分隔,不同行元素用 分号 ; 分隔。

② 间接法:利用已建好的矩阵建立更大的矩阵。

③ 复数矩阵:可以用实部矩阵和虚部矩阵构成。

④ 行向量

a.冒号表达式:在 MATLAB 中可以用冒号表达式表示 行向量,如下图。如果省略 e2,则步长为 1。
               

b.linspace 函数,调用格式如下图。当 n 省略时,自动产生 100 个元素。
               

(2)结构矩阵

格式:结构矩阵元素.成员名=表达式

(3)单元矩阵

   建立单元矩阵和一般矩阵相似,只是单元矩阵元素用 大括号 {} 括起来。


6. 矩阵元素的引用

(1)通过下标来引用
   A(3,2) 表示 A 矩阵第3 行第 2 列的元素。可以通过命令 >>A(3,2)=200 来赋值。
   注意:如果行下标或列下标大于原来矩阵的行数或列数,MATLAB 会自动扩展矩阵,并对未赋值的元素置零。

(2)通过序号来引用
   在 MATLAB 中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元素…… 矩阵元素的序号就是矩阵元素在内存中的排列顺序。序号与下标一一对应的,以 m×n 矩阵 A 为例。矩阵元素 A(i,j) 的序号为 (j-1)×m+i 。

矩阵元素的序号与下标可以利用 sub2lindind2sub函数 实现相互转换。

sub2ind:将矩阵中指定元素的行、列下标转换成存储的序号。

      

ind2sub:将矩阵元素的序号转换成对应的下标。

      

(3)通过冒号表达式获得子矩阵
   子矩阵是指矩阵中的一部分元素构成的矩阵。

  

end:表示某一维的末尾(末行或末列)元素下标。


7. 改变矩阵

(1)利用空矩阵删除矩阵的元素
   空矩阵是指没有任何元素的矩阵。如 >>x=[] 。

(2)改变矩阵的形状

reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵 A 重新排成 m × n 的二维矩阵。(注意:reshape 函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储结构)

A( : ):将矩阵 A 的每一列元素堆叠起来,成为一个列向量,等价于 reshape(A,m×n,1)。


8. MATLAB 基本运算

MATLAB 中的算术运算都是在矩阵意义下进行的。单个数据的算术运算只是矩阵运算的一种特例。

(1)算术运算

 ① 基本算术运算

  基本算术运算符:+(加)、-(减)、*(乘)、/(右除)、(左除)、^(乘方)。

  • 加减运算
    若两矩阵同型,则运算时两矩阵的相应元素相加减;否则,MATLAB 给出错误信息。
    一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。

  • 乘法运算
    要求 A 的列数与 B 的行数相等,此时则称 A、B 矩阵是可乘的,或称 A、B 两矩阵维数和大小相容;否则,MATLAB 给出错误信息。

  • 除法运算
    在 MATLAB 中,有 右除/ 和 左除\ 之分。对于矩阵来说,右除和左除表示两种不同的除数矩阵被除数矩阵关系。
    如果 A 矩阵是非奇异方阵(|A|≠0),则 B/A 等效于 B*inv(A),A\B 等效于 inv(A)*B。

inv():inv 是求逆矩阵函数。

  • 乘方运算
    一个矩阵的乘方运算可以表示成 A^x,要求 A 为方阵,x 为标量。

 ② 点运算

  点运算符:.*(点乘)、./(点右除)、.\ (点左除)、.^(点乘方)。

  两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型。如下图,拿矩阵的点乘和乘法运算为例,点乘是各个相应元素的乘法,而乘法则是矩阵乘法之间的运算。

(2)关系运算符

  关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。

  当两个比较量是标量时,直接比较两数大小。若成立,表达式为 1,否则为 0;当参与比较的是两个同型矩阵时,比较是对两矩阵相同位置元素按标量关系规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由 0 或 1 组成。

(3)逻辑运算

  逻辑运算符:&(与)、|(或)、~(非)。

  若参与逻辑运算的是两个同型矩阵,那么将对矩阵相同位置上的元素按标量规则逐个进行处理,最终运算结果是一个与原矩阵同型的矩阵,其元素由 1 或 0 组成。

优先级:在算术运算、关系运算和逻辑运算中,算术运算的优先级最高,逻辑运算优先级最低,但逻辑非运算是单目运算,它的优先级比双目运算更高。


9. 字符串处理

(1)字符串的表示

  在 MATLAB 中,字符串是用单引号括起来的字符序列。
  若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。如 >>‘I’‘m a teacher.’ 则输出 ans=I’m a teacher.
  可以建立多行字符串,形成字符串矩阵。如 >>ch=[‘abcdef’;‘123456’];
这里举个例子来加深对字符串的理解,如下图所示:

(2)字符串的操作

  • 字符串的执行

evla(s):把 参数 s 字符串作为命令执行。

  • 字符串与数值之间的转换

abs 和 double:获取字符串矩阵所对应的 ASCII 码数值矩阵。

char:把 ASCII 码矩阵转换为字符串矩阵。

  • 字符串的比较

 字符串的比较有两种方法:利用关系运算符或字符串比较函数。

 ① 关系运算符比较:两个字符串里的每个字符依次按 ASCII 值大小逐个进行比较,比较的结果是一个数值向量,向量中的元素要么是 1,要么是 0.

 ② 字符串比较函数比较:用于判断字符串是否相等。

strcmp(s1,s2):用来比较字符串 s1 和 s2 是否相等,如果相等,返回1;否则为 0.

strncmp(s1,s2,n):用来比较两个字符串前 n 个字符是否相等,如果相等,返回 1;否则为 0.

strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串 s1 和 s2 是否相等,如果相等,返回 1,否则为 0.

strncmpi(s1,s2,n):在忽略字母大小写前提下,比较字符串前 n 个字符是否相等,如果相等,返回 1,否则为 0.

  • 字符串的查找与替换

findstr(s1,s2):返回短字符串在长字符串中的开始位置。

strrep(s1,s2,s3):将字符串 s1 中所有子字符串 s2 替换为字符串 s3.



MATLAB 入门基础知识相关推荐

  1. 半小时入门MATLAB编程入门基础知识:

    https://learnxinyminutes.com/docs/zh-cn/matlab-cn/ 半小时入门MATLAB编程入门基础知识: % 以百分号作为注释符 %{ 多行注释 可以 这样 表示 ...

  2. Python培训入门基础知识学什么?

    Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...

  3. NLP汉语自然语言处理入门基础知识介绍

    NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...

  4. 负荷计算的时候assert失败_负荷计算的入门基础知识,小白入门必备!

    负荷计算是电气设计人员必须掌握的一必修课,选导体.设备还有保护开关的选择,电网系统分析,都离不开负荷计算的内容,为此小编特意总结9个负荷计算的入门基础知识,分享给大家,希望能在工作和学习中作为一份参考 ...

  5. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

  6. 电脑的基础知识_电脑入门基础知识

    电脑入门基础知识 学习电脑应该先了解电脑的基本的组件,然后学习操作,包括键盘.鼠标的使用,能基本使用操作系统,再学习打字. 作为一个电脑小白,想要学习电脑,首先要知道如何操作,学习打字,接着就是熟练使 ...

  7. ***入门基础知识(超全)

    ***入门基础知识(超全) [sell=2]  DOS 常用命令: dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 de ...

  8. Python入门基础知识学什么?

    Python基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python入门基础知识学什么呢?来看看下面小编的详细介 ...

  9. C语言入门基础知识有哪些?

    众所周知C语言经久不衰,并且很多人都想要成为C语言工程师,为了能够做好C语言技术学习,需要知晓C语言入门基础知识有哪些. 用一个简单的C程序例子,介绍C语言的基本构成.格式.以及良好的书写风格,使小伙 ...

  10. 嵌入式入门基础知识有哪些?

    嵌入式系统是指在特定应用领域内为满足特定要求而设计的计算机系统,通常被嵌入到设备中,具有实时性.可靠性.低功耗等特点.嵌入式系统应用广泛,例如:智能家居.智能手表.汽车控制系统.医疗设备等. 在本篇博 ...

最新文章

  1. VBA word 文件类型html,vba设置word文档的格式
  2. 学习资料,欧姆社学习漫画-电力电气类-漫画电池
  3. 【SmartJob】常规统计部署(报表使用的数据)
  4. cmd 发送接收邮件
  5. 针对《等保2.0》要求的云上最佳实践——网络安全篇
  6. JavaScript 全局对象
  7. Linux内存管理 brk(),mmap()系统调用源码分析1:基础部分
  8. 一起学爬虫——如何爬取通过ajax加载数据的网站
  9. layer 退 回 点击变灰色
  10. linux cuda 安装目录,Ubuntu16.04 CUDA和GPU的最简最全安装方案及常见问题解决方法,G...
  11. Linux 操作系统原理 — 操作系统的本质
  12. WIN7系统更新安装补丁“此更新不适用于你的计算机”解决办法
  13. java将pdf转换为jpg图片格式
  14. 【VHDL】半减器和全减器的设计
  15. 两个tplink路由器有线桥接_TP-Link路由器有线方式桥接设置教程
  16. 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...
  17. 庖丁解牛linux内核,庖丁解牛Linux网络核心
  18. 机械结构day_13
  19. 转-手机天猫解耦之路
  20. vue 组件内引入外部在线js、css

热门文章

  1. 计算机网络总结-一本书一个晚上一个奇迹
  2. S7-200SMART PLC通过RS485接口与西门子SMART LINE系列触摸屏通信具体步骤
  3. Objective-C 入门篇
  4. VARCHART XGantt系列教程:如何在分组视图中更好地显示节点
  5. Ubuntu 设置 samba共享文件夹
  6. tracert 原理
  7. 2022年学习数据科学的18个网站
  8. 《duilib入门到精通》- duilib下载与编译(duilib视频教程)
  9. android手机运行win10,兼容安卓 Win10手机竟然能直接运行APK
  10. codeblock添加tools实现git log查看