MATLAB基础知识

MATLAB 基础知识

       MATLAB是一个大型运算平台,参与运算的对象有数据流、信号流、逻辑关系等。如同计算器一样,在MATLAB中数学式的计算是直截了当的。但要了解这个大型计算器的使用方法并合理使用它,就先要了解一些MATLAB的基础知识。本章是整个MATLAB 学习的基础,主要内容包括MATLAB软件平台上的各种数据类型、矩阵的基本操作、运算符及字符串处理函数等。

1、数据类型

       MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这6种基本的数据类型都是按照数组形式存储和操作的。

       MATLAB中还有两种用于高级交叉编程的数据类型,分别是用户自定义的面向对象的用户类类型和 Java类类型。

1.1 数值类型

基本的数值类型主要有整数、单精度浮点数和双精度浮点数,如表2-1所示。

 

       MATLAB中数值类型的数据包括有符号和无符号整数单精度浮点数和双精度浮点数。在未加说明与特殊定义时,MATLAB对所有数值按照双精度浮点数类型进行存储和操作

       在需要时,可以指定系统按照整数类型或单精度浮点数类型对指定的数字或数组进行存储、运算等操作。相对于双精度浮点数类型,整数类型与单精度浮点数类型的优点在于节省变量占用的内存空间,当然要在满足精度要求的前提下

  • ○提示:MATLAB会自动进行记忆体的使用和回收,而不像C语言,必须由使用者 一 一 指定。这些功能使得MATLAB易学易用,使用者可专心致力于撰写程序。

1.1.1.整数类型

       MATLAB中提供了8种内置的整数类型,这8种整数类型的存储占用位数、能表示的数值范围和转换函数均不相同,如表2-2所示。

       不同的整数类型所占用的位数不同,因此能够表示的数值范围也不同。在实际应用中,应根据实际需要合理选择合适的整数类型。

       由于MATLAB中数值的默认存储类型是双精度浮点数类型,因此将变量设置为整数类型时,需要使用相应的转换函数,将双精度浮点数转换为指定的整数类型。

      在转换过程中,MATLAB默认将待转换数值转换为与之最为接近的整数值,若小数部分为0.5,则转换后的结果为与该浮点数最接近的两个整数中绝对值较大的一个

       另外,这些转换函数也可以将其他数据类型转换为指定的数据类型。在不超出数值范围的情况下,任意两个整数类型之间也可以通过转换函数进行相互转换。同时,由于不同的整数类型能够表示的数值范围不同,因此当运算结果超出相应的整数类型能够表示的范围时,就会出现错误,运算结果被置为该整数类型能够表示的最大值或最小值。

       MATLAB中还包含了几类不同运算法则的取整函数,也可以把浮点数转换成整数。这些取整函数及相应的转换方式如表2-3所示。

1.1.2.浮点数类型

       MATLAB中提供了单精度浮点数类型和双精度浮点数类型,其存储位宽、能够表示的数值范围、数值精度各方面均不相同,具体如表2-4所示。

       由表2-4可知,单精度浮点数类型的占用位数少,因此占用内存小,但能够表示的数值范围和数值的精度都比双精度浮点数类型小。

       由于MATLAB中的默认数值类型为双精度浮点数类型,因此与创建整数类型数值一样,也可以通过转换函数来实现创建单精度浮点数类型。

       双精度浮点数在参与运算时,返回值的类型依赖于参与运算的其他数据类型。当参与运算的其他数据为逻辑类型、字符类型时,返回结果为双精度浮点数类型;当参与运算的其他数据为整数类型时,返回结果为相应的整数类型;当参与运算的其他数据为单精度浮点数类型时,返回结果为相应的单精度浮点数类型。

  • ○提示:在MATLAB中,单精度浮点数类型不能与整数类型进行算术运算。

       由于浮点数只占用一定的存储位宽,其中只有有限位分别用来存储指数部分和小数部分,因此,浮点数类型能够表示的实际数值是有限且离散的,任何两个最近相邻的浮点数之间都有微小间隙,而处在间隙中的数值只能用这两个相邻的浮点数之中的一个来表示。MATLAB中提供了eps函数,可以获取一个数值和最接近该数值的浮点数之间的间隙。

1.1.3.复数

       复数包括实部和虚部两部分。MATLAB中默认使用字符ij作为虚部标志。在创建复数时,可以直接按照复数形式进行输入或者使用complex函数。MATLAB库函数中关于复数的相关函数如表2-5所示。

1.1.4.无穷量(Inf)和非数值量(NaN

       MATLAB中使用Inf-Inf分别代表正无穷量和负无穷量,NaN表示非数值量。正负无穷量的产生一般是由于运算溢出,产生了超出双精度浮点数数值范围的结果;非数值量则是由于0/0Inf/Inf类型的非正常运算而产生的,这两个NaN彼此是不相等的。

       除了异常运算结果,MATLAB还提供了特定函数InfNaN来创建指定数值类型的无穷量和非数值量,生成结果默认为双精度浮点数类型。还有一种特殊的指数类型的数据叫作非数,通常表示运算得到的数值结果超出了运算范围。非数的实部用NaN表示,虚部用InF表示。

2、逻辑类型

       逻辑类型的数据是指布尔类型的数据及数据之间的逻辑关系。除了传统的数学运算,MATLAB还支持关系和逻辑运算。这些运算的目的是提供求解真/假命题的答案。

        作为所有关系和逻辑表达式的输入,MATLAB把任何非零数值当作真,把零当作假。所有关系和逻辑表达式的输出:对于真,输出为1;对于假,输出为0

       逻辑类型数据在进行运算时需要用到关系操作符和逻辑运算符。

       MATLAB中的关系操作符如表2-6所示。

       MATLAB中的关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量。在后一 种情况中,标量和数组中的每一个元素相比较,结果与数组大小一样。

 

  • 提示:“=” 和 “==” MATLAB中的意义是不同的。“==” 是对等号两边的两个变量进行比较,当它们相等时返回1,不相等时返回0 而 “=” 则被用来将运算的结果赋给一个变量。

逻辑运算符提供了一种组合或否定关系表达式,如表2-7所示。

除了上述关系操作符与逻辑运算符,MATLAB还提供了大量其他关系与逻辑函数。

  • (1xor(x,y)指令的功能为异或运算,xy同为零(假)或非零(真)时返回0,否则返回1
  • (2)any(x)指令的功能为判断是否为零向量或零矩阵(向量或矩阵中的元素全部为零),如果是非零向量或非零矩阵,则返回1,否则返回0

       除此之外,MATLAB还提供了大量的函数,在运算过程中用来测试特殊值或条件是否存在,并返回相应的表示结果的逻辑值,如表2-8所示。

3、字符和字符串

       在MATLAB中,文本当作特征字符串或简单地当作字符串。字符串能够显示在屏幕上,也可以用来构成一些命令,这些命令在其他的命令中用于求值或者被执行。

       在MATLAB中可能会遇到对字符和字符串的操作。一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符。实际上,元素中存放的是字符的内部代码,即ASCII码。

       当在屏幕上显示字符变量的值时,显示出来的是文本,而不是ASCII数字。由于字符串是以向量的形式来存储的,因此可以通过它的下标对字符串中的任何一个元素进行访问。字符矩阵也可以通过下标索引进行访问,但是矩阵的每行字符数必须相同。

       字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。

 

       一个字符串是由单引号括起来的简单文本。在字符串中的每个字符是数组中的一个元素,字符串的存储要求每个字符8字节,如同MATLAB的其他变量。

       因为ASCII字符只要求1字节,故这种存储要求是浪费的,7/8所分配的存储空间无用。然而,对字符串保持同样的数据结构可以简化MATLAB的内部数据结构。所给出的字符串操作并不是MATLAB的基本特点,但这种表达是方便和可接受的。

       为了了解下面字符串的ASCII表达,只需对字符串执行一些算术运算。最简单和计算上最有效的方法是取数组的绝对值。

因为字符串是数值数组,所以它们可以用MATLAB中所有可利用的数组操作工具进行操作。

在上例中,字符串像数组一样进行编址。这里元素7~10包含单词good

字符串中的单引号是由两个连续的单引号来表示的。

 字符串的连接可以通过直接将字符串数组连接来实现。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/2214.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 更简单的读取和存储对象、使用注解存取对象

文章目录 1.前言2.存储 Bean对象2.1 前置任务:配置扫描路径(重中之重)2.2 添加注解存储 Bean 对象2.2.1 类注解2.2.2 方法注解 Bean 3.获取 Bean对象3.1 属性注入3.2 构造方法注入3.3 Setter 注⼊3.4 三种注释的优缺点3.5 另⼀种注⼊关键字&a…

全志V3S嵌入式驱动开发(spi-nand image制作)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 上一篇文章,我们说到了spi-nor image的制作和输入。相比较spi-nor,spi-nand虽然在稳定性上面差一点,但是价格上面有很大的优势。举例来说,一般32M的spi-nor大约在6-7元左右,但…

SpringBoot 中使用 JWT 案例分享详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

改进YOLOv5/YOLOv8:复现结合即插即用 | 高效多尺度注意力(EMA),模块成为YOLOv5改进的小帮手

高效多尺度注意力(EMA) 论文介绍简介EMA模块图像分类实验目标检测实验yolov5加入方法yolo注册yaml文件yolov8加入方法EMA代码及加入方式yaml文件1EMA注意力论文 https://arxiv.org/ftp/arxiv/papers/2305/2305.13563.pdf 论文介绍 通道或空间的显著有效性 注意机制对产生更多…

Ubuntu环境下读取罗技G29方向盘信息

本篇博客最早发布于实验室公共博客,但已无人维护,现迁移至个人博客 引言 实验室有这么酷的驾驶设备,来了一年还没有实际操作过,早就蠢蠢欲试了,哈哈哈不过之前负责的师兄还在就一直没敢用,现在他毕业了就可…

Find My资讯|苹果Find My技术应用于车内丢失设备

美国专利商标局正式授予苹果两项泰坦项目新专利,分别是扩展其针对车内丢失设备的“Find My”设备服务,以及用于自动驾驶汽车的高级传感器系统,其中传感器系统还涵盖了带有摄像头系统的车辆,而摄像头系统除可3D重建场景之外&#x…

【独家揭秘】微信可以自动加好友自动打招呼啦!

最近客户好友做某书内容爆了,每天都引流很多人来加他的微信,基本每天都需要花大量时间去通过好友,导致没有时间去做后续的维护发展客户,于是找到我大吐苦水,问我有什么办法可以解决? 嘿,这不巧了…

参与 2023 第二季度官方 Flutter 开发者调查

Flutter 3.10 已经正式发布,每个季度一次的 Flutter 开发者调查也来啦!邀请社区的各位成员们填写: 调研旨在了解你对 Flutter 的满意程度以及对其各个子系统的反馈。你的意见将对我们改进 Flutter 的功能和性能产生重要影响。 在这次调研中&a…

抖音最新版本抓包

1.下载fiddler抓包工具 2.配置https抓包环境 3.抓包工具配置好了之后,我们确保手机和电脑在同一个局域网中 4.打电脑CMD 输入 ipconfig 查看电脑的ip地址 5.打开我们的手机设置代理 6.打开浏览器 输入:你的电脑ip:8888 下载证书 7.打开Re文件管理器(ps…

Ceph分布式存储系统搭建

目录 安装部署示例 (一)准备环境 1). 设置主机名 2). 关闭防火墙 3).添加sdb磁盘并格式化 4).配置hosts解析文件 5).配置免密登录 6).同步时区 7). 安装 Ceph 包 (二)创建 Ceph 集群 1、 安装ceph-deploy管理工具 2、 …

webpack3 打包vue项目导致app体积过大

问题说明:打包导致 js 很大,然后访问特别慢。 Q:如果你的 js 达到了好几M,(除了个别情况,比如的代码量真的超级大到不行,其实这个本身就不成立)。我最开始就是,打包了我…

广州华锐互动:建筑施工VR虚拟仿真实训系统

VR技术在施工现场安全教育中有着广泛的应用。随着VR技术的不断发展,越来越多的企业开始将其应用于施工现场安全教育中,以提高工人的安全意识和应对能力。 传统的施工现场安全教育往往需要大量的时间和人力物力投入,而且效果并不理想.而VR技术…