MATLAB 入门基础知识


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 字符串作为命令执行。

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

absdouble:获取字符串矩阵所对应的 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.



  • 12
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值