Matlab中的数据类型

news2024/12/24 9:57:10

数据类型

MATLAB中的数据类型主要包括数值类型逻辑类型字符串函数句柄结构体和
单元数组类型。这6种基本的数据类型都是按照数组形式存储和操作的。另外,MATLAB
中还有两种用于高级交叉编程的数据类型,分别是用户自定义的面向对象的用户类类型和
Java类类型。

数值类型

基本的数值类型主要有整数、单精度浮点数和双精度浮点数。

数据格式示例说明
int8,unit8
int16,unit16
int32,unit32
int64,unit64
int32(820)有符号和无符号的数据类型
相同数值的整数类型占用比浮点类型更少的内存
除int64和unit64类型外的所有整数类型,都可以进行数学运算
singlesingle(128.1)单精度浮点类型
相同数值的单精度浮点类型比双精度浮点类型占用更少的内存
double333.77
1.000-1.000i
双精度浮点类型,MATLAB中默认的数值类型
  • MATLAB中数值类型的数据包括有符号和无符号整数、单精度浮点数和双精度浮点数。在未加说明与特殊定义时,MATLAB对所有数值按照双精度浮点数进行存储和操作。

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

整数类型

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

  • 在转换过程中,MATLAB默认将待转换数值转换为与之最为接近的整数值,若小数部分为0.5,则转换后的结果为与该浮点数最接近的两个整数中绝对值较大的一个。
  • 这些转换函数也可以将其他数据类型转换为指定的数据类型。在不超出数值范围的情况下,任意两个整数类型之间也可以通过转换函数进行相互转换。同时,由于不同的整数类型能够表示的数值范围不同,因此当运算结果超出相应的整数类型能够表示的范围时,就会出现一处错误,运算结果被置为该整数类型能够表示的最大值或最小值。
  • MATLAB中还包含了几类不同运算法则的取整函数,也可以把浮点数转换成整数。

浮点数类型

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

双精度浮点数参与运算时,返回值的类型依赖于参与运算的其他数据类型。

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

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

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

复数

复数包括实部和虚部两部分。MATLAB中默认使用字符i或j作为虚部标志。创建复数时,可以直接按照复数形式进行输入或利用complex函数。

复数: a + b i a+bi a+bi(其中,a为实部,b为虚部)
共轭复数: a − b i a-bi abi
模: ∣ z ∣ = ( a 2 + b 2 ) |z|=\sqrt{(a^2+b^2)} z=(a2+b2)
辅角: θ = a r c t a n b a θ=arctan\frac{b}a θ=arctanab

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

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

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

逻辑类型

  • 逻辑类型的数据是指布尔类型的数据及数据之间的逻辑关系。除了传统的数学运算之外,MATLAB还支持关系和逻辑运算。这些运算的目的是提供求解真/假命题的答案。
  • 作为所有关系和逻辑表达式的输入,MATLAB把任何非零数值当作真,把零当作假。所有关系和逻辑表达式的输出:对于真,输出为1;对于假,输出为0。

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

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


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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【考研数据】二.2021年BJTU计算机学院考研录取数据分析

欢迎订阅本专栏:《北交计算机复试经验》 订阅地址:https://blog.csdn.net/m0_38068876/category_12110003.html 【考研数据】一.2020年BJTU计算机学院考研录取数据分析【考研数据】二.2021年BJTU计算机学院考研录取数据分析【考研数据】三.2022年BJTU计算机学院考研录取数据分…

web端 无插件 实时视频预览

一,需求 项目需要在web上对相机采集的图片进行编码成视频,然后进行实时预览。以前调研的方案有以下两种: 1,客户端安装ocx插件,浏览器调用插件进行解码,渲染。但是浏览器支持有限,只有ie支持&…

【建议收藏】五年程序员写给小白看的Python基础知识

32000字的长文,建议先收藏后阅读,如果能够点赞转发那就太感谢啦~ 话不多说,我们正式开始。 安装 Python 在开始学习 python 之前,我们先要安装 python。安装 python 的步骤根据不同的操作系统会有些差异,以下是几种…

TensorFlow之分类模型-3

1 基本概念 2 文本分类与情感分析 3 TF模型仓库的使用 本章节主要使用TensorFlow模型仓库与keras技术框架联合开发对IMDB数据集的机器学习,TensorFlow模型仓库提供模型直接下载使用,链接地址如下所示: https://hub.tensorflow.google.cn/ …

关于远程debug的一些事

首先,远程debug需要项目的启动,我这边采用的是docker构建镜像的方式,也可以使用传统jar包命令的方式;然后需要明确一个东西,就是远程debug暴露的端口不是项目端口,而是jvm端口。 这边给出我构建镜像使用的d…

Neodynamic JSPrintManager for Blazor

Neodynamic JSPrintManager for Blazor NeodynamicJSprintManager for Blazor是一个客户端打印和扫描方案,设计用于任何Blazor服务器和WebAssembly项目。通过编写纯.NET C#代码,JSPrintManager for Blazor允许您轻松地将原始数据、文本和本机命令以及已知…

一个简单的HTML网页——传统节日春节网页(HTML+CSS)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

JUC并发编程02——AQS源码剖析

1.AQS介绍 相信每个Java Coder 都使用过或者至少听说过AQS, 它是抽象队列同步器AbstractQueuedSynchronizer 的简称,在juc包下。它提供了一套可用于实现锁同步机制的标准框架,其维护了一个volatile修饰的共享变量state和 一个FIFO(先进先出)线程等待队列…

SpringBoot实战:整合Swagger3实现在线Api文档

Swagger-UI 是 HTML、Javascript、CSS 的一个集合,可以动态地根据注解生成在线 Api 文档;swagger-bootstrap-UI 则可以美化 swagger-ui,页面更清爽!本篇就是实现 SpringBoot 整合 Swagger3 实现在线 Api 文档。 项目源码实现前分支…

物联网开发笔记(58)- 使用Micropython开发ESP32开发板之控制2.90寸电子墨水屏模块黑白套件

一、目的 这一节我们学习如何使用我们的ESP32开发板来控制2.90寸电子墨水屏模块(黑白套件)。 二、环境 ESP32 2.90寸 电子墨水屏模块 Thonny IDE 几根杜邦线 接线方法: 三、墨水屏驱动 此处注意注意:不同的型号、不同厂家的墨…

web前端期末大作业 基于HTML+CSS+JavaScript绿色的在线教育平台网站响应式企业网站模板

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

C++学习笔记(十七)——list的模拟实现

需要实现的三个类及其成员函数接口总览 结点类的模拟实现 构造函数 迭代器类的模拟实现 迭代器类存在的意义 迭代器类的模板的参数说明 构造函数 运算符的重载 --运算符的重载 运算符的重载 !运算符的重载 *运算符的重载 ->运算符的重载 list的模拟实现 默认成…

Pr:导出设置之元数据

元数据 METADATA模块可设置有关媒体文件的一组说明性信息。元数据可以包含创建日期、文件格式和时间轴标记等信息。 导出选项Export Options决定如何将 XMP 元数据与导出文件一起保存。说明:XMP eXtensible Metadata Platform,扩展元数据平台&#xff0c…

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

介绍 最近我们被客户要求撰写关于向量自回归的研究报告,包括一些图形和统计输出。向量自回归(VAR)模型的一般缺点是,估计系数的数量与滞后的数量成比例地增加。因此,随着滞后次数的增加,每个参数可用的信息…

软件架构设计 :VO,BO,PO,DO,DTO的理解

文章目录前言一、小总结一下二、详细理解1、Persistant Object(持久对象)个人理解2、 Business Object(业务对象)个人理解3.DTO(Data Transfer Object)数据传输对象个人理解5、VO(Value Object)值对象个人理解VO和DTO的…

web前端期末大作业 html+css+javascript化妆品网页设计实例 企业网站制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

c++ - 第16节 - map和set

1.关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联…

【Linux】进程控制(详细解析)

文章目录一.进程创建初识fork函数fork函数返回值写时拷贝fork常规用法fork调用失败的原因二.进程终止进程退出场景进程退出码进程常见退出方法1.return2.exit3._exit三.进程等待进程等待的必要性获取子进程状态status进程等待的方法wait方法waitpid方法基于非阻塞接口的轮询检测…

python操作redis

目录 python操作redis 安装redis模块 基本链接 连接池连接 redis字符串操作 redis hash操作 redis 列表操作 redis 其它操作 redis管道 django中集成redis python操作redis 安装redis模块 pip install redis基本链接 # 第一步:导入Redis类 from redis …

Linux网络原理及编程(7)——第十七节 网络层

目录 IP报头 网段划分 私有IP地址和公网IP地址 补充一下路由器 的有关知识: 路由 各位好,博主新建了个公众号《自学编程村》,拉到底部即可看到,有情趣可以关注看看哈哈,关注后还可以加博主wx呦~~~(公众…