零基础入门MATLAB(一篇十分钟)
目录
一、复数
二、取整函数
三、无穷量(Inf)和非数值量(NaN)
四、逻辑类型
五、字符和字符串
六、函数句柄
七、结构体
八、数组类型
九、单元数组
十、map容器类型
参考《MATLAB R2020a 完全自学一本通》
一、复数
复数包括实部和虚部,MATLAB中默认使用字符i或j作为虚部标致
例如:
MATLAB库函数中关于复数的计算如下表
函数 | 说明 | 函数 | 说明 |
real(z) | 返回复数z的实部 | image(z) | 返回复数z的虚部 |
abs(z) | 返回复数z的模 | angle(z) | 返回复数z的的辐角 |
conj(z) | 返回复数z的共轭复数 | complex(a,b) | 以a为实部、b为虚部创建复数 |
二、取整函数
函数 | 运算法则 | 示例 |
floor(x) | 向下取整 |
floor(1.2)=1 floor(2.5)=2 floor(-2.5)=-3 |
ceil(x) | 向上取整 |
ceil(1.2)=2 ceil(2.5)=3 ceil(-2.5)=-2 |
round(x) |
取最接近的整数 如果小数部分是0.5,则向绝对值大的方向取整 |
round(1.2)=1 round(2.5)=3 round(-2.5)=-3 |
fix(x) | 向0取整 |
fix(1.2)=1 fix(2.5)=2 fix(-2.5)=-2 |
三、无穷量(Inf)和非数值量(NaN)
MATLAB中使用 Inf 和 -Inf 来分别代表正无穷量和负无穷量,NaN表示非数值。正负无穷量的产生一般是由于运算溢出,产生了双精度浮点数数值范围的结果;非数值则是由于 0/0 或 Inf/Inf 类型的非正常运算而产生,这两个NaN彼此是不相等的。
除了异常运算结果,MATLAB也提供了特定函数Inf和NaN来创建指定数值类型浮点无穷量和非数值量,生成结果默认为双精度浮点数类型。还有一种特殊的指数类型的数据叫做非数,通常表示运算得到的数值结果超出了运算范围。非数的实部用NaN表示,虚部用InF表示。
例如:
四、逻辑类型
MATLAB中除了支持关系运算外还支持逻辑运算。
MATLAB中把任何非零数值当作真,把零当作假。所有关系和逻辑类型的输出:对于真,输出1;对于假,输出为0。
关系操作符 | 说明 |
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于 |
~= | 不等于 |
MATLAB中的关系操作运算符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量。在后一种情况中,标量和数组中的每一个元素相比较,结果和数组大小一样。
例如:
逻辑运算符提供了一种组合或否定关系表达式,如下表。
逻辑运算符 | 说明 |
& | 与 |
| | 或 |
~ | 非 |
例如:
五、字符和字符串
MATLAB中一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符。因此可以通过下标对字符串中的任何一个元素进行访问。字符矩阵也可以通过下标索引进行访问,但是矩阵的每行字符数必须相同
①字符属性示例,使用size() 获得字符长度
字符串中的每个字符是数组中一个元素,字符串的存储要求每个字符8字节,之所以不要求1字节是因为对字符串保持同样的数据结果可以简化MATLAB的内部数据结构。
②字符串的ASCII表达,使用abs() 获得每个字符ASCII码
③字符串数组是索引示例
④字符串中的单引号
在字符串中添加单引号需要使用转义字符 ” ' "
⑤ 字符串的链接,使用 [ ] 连接两个字符串
六、函数句柄
在MATLAB中,对函数调用分为直接调用和间接调用。
- 直接调用函数,被调用函数称为子函数。但是子函数只能被与其M文件同名的主函数或在M文件中的其他函数调用,一个文件中只能有一个主函数
- 函数句柄提供了一种间接调用的方法,创建函数句柄需用到操作符@。MATLAB库函数中的各种内部函数都可以创建函数句柄,从而通过函数句柄实现对这些函数的间接调用。
Funciton_Handle = @Function_Filename;
- Function_Filename是函数所对应的M文件的名称或MATLAB内部函数的名称
- @是句柄创建操作符
- Function_Handle变量保存这一函数句柄
函数句柄的创建与调用
MATLAB库函数中提供大量处理函数句柄的操作函数,如下表:
函数名称 | 函数功能 |
function(funhandle) | 返回一个结构体,存储函数名称、函数类型(simple或overloaded),以及函数M文件的位置 |
func2str(funhandle) | 将函数句柄转换为函数名称字符串 |
str2func(str) | 将字符串所代表的函数转换为函数句柄 |
save filename.mat funhandle | 将函数句柄保存在*.mat文件中 |
load filename.mat funhandle | 将*.mat文件中存储的函数句柄加载到工作区 |
isa(var,'function_handle') | 检测变量var是否是函数句柄 |
isequal(function,funhandle) | 检测两个函数句柄是否对应同一个函数 |
函数句柄基本操作:
七、结构体
结构体相当于一个数据容器,把多个相关链的不同类型的数据封装在一个结构体对象中。MATLAB创建结构体有两种方法,一种是通过赋值语句给结构体的字段赋值,另一种是使用结构体创建函数struct。两种方法具体操作如下:
①通过字段创建结构体
在字段赋值时,没有明确赋值的字段,MATLAB默认赋值为空数组。通过圆括号索引进行字段的赋值,还可以创建任意尺寸的结构体数组。
②利用struct函数创建结构体
struct函数的语法形式
strArray = struct('field' , val , 'field2' , var2, ..... 'fieldn' , varn)
示例1:
示例2:
八、数组类型
在MATLAB中进行运算的所有数据类型,都是安装数组及矩阵的形式进行存储和运算。数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。数组的定义是广义的,数组的元素可以是任意数据类型,例如可以是数值、字符串、指针等。
①对变量赋值创建数组
②使用“:”冒号创建等差数组
语法格式 :
Array = i :j :k
创建从i 开始、步长为j、到k结束的数组序列。省略j则表示默认步长为1
③使用linspace函数创建等差数组
语法格式 如下:
Array = linspace (a , b , n )
在区间 [ a , b ]上创建 n 个元素向量
④创建空数组
九、单元数组
单元(Cell)数组是一种广义矩阵。组成单元数组的每一个元素称为一个单元。每一个单元可以包括一个任意数组(如数值数组,字符串数组,结构体数组或另外一个单元数组),因此每一个单元的尺寸和内存占用空间可能不同。
单元数组的创建有两种方式:一种是使用赋值语句创建单元数组,另一种是使用cell函数创建单元数组。
①创建单元数组
使用逗号“ ,”或空格分隔每一个单元,使用分号“ ;”来分行
②使用cell函数创建空单元数组
单元数组访问
对于 单元数组C,C(m,n)指的是单元数组中第m行第n列的单元
单元数组的操作,合并、删除、更改形状
①单元数组合并,使用 { }合并两个单元数组
③指定单元的删除
③ 使用reshape函数改变单元数组形状
语法格式如下
trimC = reshape( C , M , N )
将单元数组C改成一个具有M行N列的新单元数组。
示例:
十、map容器类型
map是一种以“键值对”方式进行存储的容器,map的键(key)可以是数字也可以是字符串,map的数值就是map的数据(value)。一个map是MATLAB类的一个对象。map类具有下面3种属性:
属性 | 说明 | 默认值 |
Count | 表示map对象中“键值对”的总数 | 0 |
KeyType | 表示map对象中包括的key的类型 | char |
ValueType | 表示map对象中包括的数据类型 | any |
①创建map对象
map是一个map类中的对象,又MATLAB中名为“容器”的一个包来定义,可以通过构造函数来创建,其语法形式如下(指定键的所有类型都必须一样)
mapObject = containers.Map({key1 , key2 , .....},{val1 , val2 , .....})
也可以创建一个空map对象,再通过点的方式赋值
②查看/读取map对象
通过keys函数和values函数可查看所有的map对象中包含的键和值
访问指定键所对应的值
如需对多个键访问,可以配合values函数使用
③编辑map对象
使用remove函数,删除map对象中的“键值对”
remove('mapname' , 'keyname')
添加keys/values对。
当向map对象中写入新元素时,需提供键名,而且该键类型必须和map中的其他键一致,语法格式如下
MapObject(newKeyName) = newValue
修改keys。如需在保持值不变对键名进行更改,则首先删除“键值对”,然后再添加
修改values。通过赋值操作,覆盖原有值。
参考《MATLAB R2020a 完全自学一本通》
零基础入门MATLAB(一篇十分钟)相关推荐
- 零基础入门学Python(十二)—— 魔法方法(上)
零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...
- 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系
今天为大家带来的内容是:零基础入门必看篇:浅析python ,PyCharm,Anaconda三者之间关系 众所周知,Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C, ...
- 零基础入门学Python(十二)—— 魔法方法(下)
零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(下) 1. 构造和析构 2. 算术运算 3. 简单定制 4. 属性访问 5. 描述 ...
- 数学建模速成! 两小时零基础入门 MATLAB 教程(一)—— Matlab常用操作和基本语法
Matlab常用操作和基本语法 没有涉及到编程的内容, 就是介绍一些MATLAB软件的操作, 和简单的语法如注释输出之类的 目录 文章目录 Matlab常用操作和基本语法 1. help查看函数说明 ...
- 数学建模速成!两小时零基础入门MATLAB教程(六)—— 定义和调用函数
MATLAB定义函数 文章目录 MATLAB定义函数 1. 常见问题 2. 如何定义 2.1语法 2.2举例 3. 如何使用 3.1 得到返回值 3.2 将定义的函数作为参数传递给其他函数(函数指针) ...
- 【Python零基础入门之终结篇】:虚拟机Linux命令、Vim编辑器、有趣的命令
目录 一.虚拟机Linux命令 1.基本命令 常用命令 文件操作命令 2.通过代码演示了解基本命令的使用 pwd.ls.ls -a 命令的使用 cd 目录名.cd 命令的使用 tab:自动补全命令 c ...
- 狸窝音频剪辑软件_剪映零基础入门教程第二篇:剪辑软件剪映的音频功能怎么样...
在制作短视频的时候大家常用的剪辑软件有哪些呢?说实话目前市面上的剪辑软件还是比较多的,有时候让用户们都纠结于到底哪款软件才是最好用的那款呢?但是我想用的最多的还是抖音自家推出的小软件剪映吧,不仅仅是因 ...
- 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...
经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...
- 视频教程-ARDUINO零基础入门教程【代码编程篇】-Arduino
ARDUINO零基础入门教程[代码编程篇] 精通各种单片机编程,有十年以上ARDUINO,51单片机/STM32/PIC/AVR编程,硬件设计,绘图,编程经验.熟悉各种常用传感器使用和物联网通讯 赵勇 ...
最新文章
- 从MySQL 5.6升级到8.0,Facebook付出了惨痛代价……
- 根据长文本拆分至内表
- 任务和特权级保护(五)——《x86汇编语言:从实模式到保护模式》读书笔记36
- BZOJ2131免费的馅饼 DP+树状数组
- GDCM:gdcm::UIDs的测试程序
- webpack里JavaScript文件编译的调试
- oracle 处理过程,Oracle SQL语句处理过程(转载)
- SpringMVC-HandlerInterceptor拦截器的使用与参数详解
- 如何能顺利往表中允许为null的字段插入null值(参数绑定)
- ThinkPhp 使用 PHP_XLSXWriter 代替 PHPExcel 百万级数据单次导出
- 证券基金行业那些智能XX(上)
- STM3库文件 hal_uart.c的使用
- Linux命令行安装图形化界面
- html中中文字体的代码
- 人文社科开放数据库汇总
- js return加分号_JavaScript 语句后应该加分号么?
- 14.hibernate的入门
- linux 公社资料
- 画笔和画刷的种类和使用方法
- linux设置sfq队列参数,Linux内核中流量控制(5)
热门文章
- 《招标投标法》和《招标投标实施条例》有什么关系?
- java从零到项目实战(八)
- python enumerate_Python enumerate() 函数
- ArcGIS教程:ArcGIS中的图表是什么
- GeoServer学习(初学WMS、WCS、WFS、WMTS)
- 4星|《维米尔的帽子》:17世纪荷兰画中的全球化踪迹,鸦片与烟草被当时中国主流文化接纳的故事...
- 中职计算机技能,中职计算机专业技能竞赛规则
- XML中配置网易云歌手详情滑动效果
- 国家频抛利好政策 互联网将成医联体建设神经中枢?
- linux 怎么看节点核数,Linux怎么查看CPU核数?-linux运维