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

相关推荐
机器学习之心11 小时前
Bayes-GRU-Attention的数据多特征分类预测Matlab实现
matlab·分类·gru
叶庭云11 小时前
Matlab 和 R 语言的数组索引都是从 1 开始,并且是左闭右闭的
matlab·编程语言·r·数组索引·从 1 开始
γ..14 小时前
基于MATLAB的图像增强
开发语言·深度学习·神经网络·学习·机器学习·matlab·音视频
IT猿手16 小时前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
超级大咸鱼1 天前
CW信号的正交解调
matlab·verilog·fpga·数字信号·解调·正交解调·cw
乌恩大侠1 天前
画图,matlab,
开发语言·matlab
吐泡泡科技1 天前
无人机视频传输系统的通信能耗优化
matlab·通信能耗·无人机通信
达不溜方2 天前
基于MATLAB的图像增强
开发语言·人工智能·学习·机器学习·matlab·云服务·效率
信号处理学渣2 天前
matlab的一些时间函数【转】
matlab
IT猿手2 天前
SDMTSP:黑翅鸢算法(Black-winged kite algorithm,BKA)求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)
人工智能·深度学习·机器学习·matlab·无人机·智能优化算法