MATLAB基础语法知识

环境的配置等等就不写了,网上还是有很多资源可以找,而且正版的要付费,我也是看的网上的搞定的。

一,初识MATLAB

1.1 MATLAB的优势

  • 不需要过多了解各种数值计算方法的具体细节和计算公式,也不需要繁琐的底层编程。
  • 可以专注于对实际问题的分析。

1.2 MATLAB的主要功能

  • 数值计算
  • 符号计算
  • 图形绘制
  • 程序流程控制
  • 工具箱

1.3 页面介绍

二,MATLAB数据数值

2.1 分类

2.1.1 整型
  • 无符号整型:

-无符号8位(16位,32位,64位)整数

-无符号8位整数取值范围:00000000~11111111(~

  • 带符号整数

-带符号8位(16位,32位,64位)整数

-带符号8位整数取值范围:10000000~01111111(~

  • MATLAB提供函数将数值数据转换为整型数据:

-uint8:将数值数据转换为无符号八位整数

-int8:将数值数据转换为带符号八位整数

2.2 浮点型

  • 浮点型数据分为双精度型和单精度型
  • 单精度型实数占4个字节;双精度型实数占8个字节,双精度型的数据精度更高
  • MATLAB中默认为双精度
  • single函数:将其他类型数值数据转换为单精度型
  • double函数:将其他类型数值数据转换为双精度型

2.3 复型

  • 包括实部和虚部两个部分,都默认为双精度型
  • 虚部用i或j表示
  • real函数:求复数的虚部
  • imag函数:求复数的实部

2.4 format格式

  • 格式:format + 格式符
  • 只影响数据输出,不影响数据的计算和存储

2.5 常用数学函数

  • 格式:函数名(函数自变量的值)
  • 函数自变量规定为矩阵变量,也可为标量,标量本身为矩阵的特例
  • 函数运算时是将函数逐项作用于矩阵的每个元素上,所以最后运算的结果是一个与自变量同型的矩阵
  • 常见函数的应用

-三角函数有以弧度为单位的函数也有以角度为单位的函数,如果以角度为单位则在函数名后加"d",以示区别。

-abs函数可以求实数的绝对值,复数的模,字符串的ASCII码值

-用于取整的函数:fix,floor,ceil,round;其中round四舍五入;ceil指向上取整,取大于等于这个数的整数;floor指向下取整,取小于等于这个数的整数;fix指舍去小数取整

-isprime用于查找一定区间的素数

三,变量及其操作

3.1 变量的定义方式

  • 变量名以字母开头,后接字母,数字或下划线的字符序列,最多63个字符
  • 变量名区分字母大小写
  • 标准函数名以及命令名必须用小写字母
  • 格式: 变量名 = 表达式;表达式
Matlab 复制代码
>> x=exp(pi/2)
  • 预定义变量:由系统本身定义的变量

-ans:默认赋值变量

-i,j:虚数单位

-pi:圆周率

-NaN:非数

3.2 变量的管理

  • 内存变量删除与修改:在工作区窗口中右击某个变量,在快捷菜单中选择某个命令
  • who和whos命令:输入后显示变量各种信息
  • 内存变量文件

-用于保存MATLAB工作区变量的文件叫做内存变量文件,扩展名为.mat,也叫MAT文件

-save命令:创建内存变量文件

-load命令:装入内存变量文件

四,矩阵的表示

4.1 矩阵的建立

  • 直接输入法:

-用中括号括起来

-同行元素用逗号隔开;不同行元素用分号隔开

  • 用已建好的矩阵构建更大的矩阵

-同行用逗号隔开;不同行用分号隔开

-还可用实部矩阵和虚部矩阵构成复数矩阵

  • 冒号表达式

-表示一个行向量

-格式: 初始值:步长(省略时则表示步长为一):表达式

-linspace(a,b,n)也可产生行向量;其中a是第一个元素,b是最后一个元素,n是元素总数,默认为100。

4.2 结构矩阵和单元矩阵

  • 结构矩阵

-不同元素间相互联系,元素下还有成员

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

  • 单元矩阵

-各个元素即不同的数据

-建立方式与一般矩阵相似,但是是用大括号括起来的。

4.3 矩阵的引用

  • 通过下标来引用矩阵的元素

-如果下标超过了矩阵范围,MATLAB中矩阵会扩张

  • 通过序号来引用矩阵的元素

-矩阵元素按列存储,元素的序号就是矩阵存储的序号

-sub2ind函数:将矩阵中制定元素的行,列下标转换为存储的序号,调用格式为D=sun2ind(S,I,J),其中S指行数和列数组成的向量,I指转换矩阵元素的行下标,J指转换矩阵元素的列下标,D指对应序号。

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

  • 利用冒号表达式获取子矩阵

-A(i,:):第i行的全部元素

-A(:,j):第j行的全部元素

-A(i:i+m,k:k+m):第i~i+m行内且在第k~k+m列中的所有元素

  • end运算符

-表示某一维的末尾元素下标

4.4 矩阵的删除

  • 利用空矩阵删除矩阵中的元素
  • 改变矩阵的形状

-reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排列成m*n的二维矩阵,但不改变原矩阵的元素个数和存储顺序。

4.5 特殊表示

  • A(:):将矩阵A的每一列元素堆叠起来,成为一个列向量。

五,基本运算

5.1 算术运算

5.1.1 基本运算:
  • 介绍

-符号:+,-,*(乘),/(右除),\(左除),^(乘方)

-都是基于矩阵进行

-单个数据的运算是在矩阵运算中的一个特例

  • 加减运算

-要求:两矩阵同型,则运算时两矩阵的相应元素相加减

-若两矩阵不同型,则MATLAB将给出错误信息

-一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。

  • 乘法运算

-要求:矩阵A的列数和矩阵B的行数相等,即A和B大小和维数相容

-若A和B大小和维数相容,则MATLAB将给出错误信息

  • 除法运算

-有左除和右除两种

-假设A是非奇异矩阵,B/A等效于B*inv(A),A\B等效于inv(A)*B

  • 乘方运算

-以A^x为例,要求A为矩阵,x为标量

5.1.2 点运算
  • 点运算符:.*,./,.\和.^
  • 指两矩阵对应元素进行相关运算,要求两矩阵同型

5.2 关系运算

5.2.1 介绍
  • 关系运算符:>,<,>=,<=,==,~=(不等于)
  • 当两个比较量是标量时,直接比较两数的大小。若关系成立,表达式结果为1,反之为0
  • 当两个比较量是两个同型的矩阵时,则比较相同位置的两个元素,如果符合比较规则则为1,反之为0。最终返回一个同型的,由1或0组成的矩阵
  • 当两个比较量是一个是矩阵,另一个是标量时,则标量和矩阵上的元素一一比较,如果符合比较规则则为1,反之为0。最终返回一个与原矩阵同型的,由1或0组成的矩阵

5.3 逻辑运算

5.3.1 介绍
  • 逻辑运算符:&(与),|(或),~(非)
  • 假定标量a和b,运算规则如下:

-a&b a、b全为非零是,结果为1,反之为0.

-a|b a、b只要有一个为非零时,运算结果为1

-~a 当a为0时,运算结果为1;当a为非零时运算结果为0

  • 矩阵参与时,运算规则与关系运算相似。
5.3.2 运算先后顺序

在算数运算,关系运算,逻辑运算中,算数运算的优先级最高,逻辑运算的优先级最低,但逻辑非运算是单目运算,它的优先级比双目运算要高。

六,字符串处理

6.1 基本介绍

  • 字符串用单引号括起来
  • 如果字符串含单引号,该单引号字符用两个单引号表示
  • 建立多行字符串可以形成字符串矩阵(需要两个字符串长度相等)

6.2 一些常见操作

(1)字符串的执行

  • 格式:eval(s)
  • s为字符串

(2)字符串与数值间的转换

  • abs和double函数获取字符串矩阵所对应的ASCII码数值矩阵
  • char函数将ASCII码矩阵转换为字符串矩阵

(3)字符串比较

  • 方法:利用关系运算符和逻辑运算符
  • 关系运算符比较:按ASCII码值逐个比较,返回一个数值向量
  • 判断字符串是否相等的四种方法:

-strcmp(s1,s2):比较s1和s2是否相等,如果相等,返回1,反之返回0

-strncmp(s1,s2,n):比较s1和s2前n个字符串是否相等,如果相等,返回1,反之返回0

-strcmpi(s1,s2):忽略字母大小写时,比较s1和s2是否相等,如果相等,返回1,反之返回0

-strncmpi(s1,s2,n):忽略字母大小写时,比较s1和s2前n个字符串是否相等,如果相等,返回1,反之返回0

(4)替换与查找

  • 相关函数

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

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

相关推荐
xrgs_shz1 小时前
MATLAB读入不同类型图像并显示图像和相关信息
图像处理·计算机视觉·matlab
火山口车神丶4 小时前
某车企ASW面试笔试题
c++·matlab
今天吃饺子4 小时前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
Evand J16 小时前
集合卡尔曼滤波(Ensemble Kalman Filter),用于二维滤波(模拟平面上的目标跟踪),MATLAB代码
matlab·平面·目标跟踪
我是博博啦1 天前
matlab例题
人工智能·算法·matlab
2402_871321951 天前
MATLAB方程组
gpt·学习·线性代数·算法·matlab
Matlab程序猿小助手2 天前
【MATLAB源码-第218期】基于matlab的北方苍鹰优化算法(NGO)无人机三维路径规划,输出做短路径图和适应度曲线.
开发语言·嵌入式硬件·算法·matlab·机器人·无人机
Matlab精灵2 天前
使用MATLAB进行字符串处理
开发语言·matlab
机器学习之心2 天前
POD-Transformer多变量回归预测(Matlab)
matlab·回归·transformer·pod-transformer
WangYan20223 天前
高光谱遥感是什么?高光谱遥感数据如何处理?(基于Matlab和Python多案例解析)从小白到精通
matlab·高光谱遥感数据处理·混合像元分解