【matlab】数据类型01-数值型变量(整数、浮点数、复数、二进制和十六进制)
文章目录
- 一、 整数
- 1.1 整数的最值
- 1.2 大整数
- 1.3 当整数值超过了uint64最大值
- 1.4 和其它类型数值运算
- 二、 浮点数
- 2.1 双精度和单精度
- 2.2 浮点数的存储
- 2.3 浮点数的最值
- 2.4 浮点数的“四舍五入”
- 2.5 浮点数的算术运算
- 2.6 意外:舍入误差、抵消、淹没和中间转换
- 三、复数
- 四、二进制和十六进制
- 五、其它
- 5.1 无穷和NaN
- 5.2 数值显示格式
- 5.3 检查数据类型
- 5.4 合并不同类型
也可以看matlab官方doc。
matlab 所有的数据类型都以矩阵(数据)的形式组织,比如单变量就是1*1的矩阵。
Matlab = Matrix Laboratory
。
一、 整数
MATLAB® 具有四个有符号整数类和四个无符号整数类。
有符号类型使您能够处理负整数以及正整数,但表示的数字范围不如无符号类型广泛,因为有一个位用于指定数字的正号或负号。
无符号类型提供了更广泛的数字范围,但这些数字只能为零或正数。
MATLAB 支持以 1 字节(8位)、2 字节、4 字节和 8 字节(32位)几种形式存储整数数据。
使用可容纳你的数据的最小整数类型来存储数据,则可以节省程序内存和执行时间。例如,不需要使用 32 位整数来存储值 100。
下面列出了八个整数类、使用每种类型可存储的值范围以及创建该类型所需的 MATLAB 转换函数。
类 | 值的范围 | 转换函数 | 十进制范围 |
---|---|---|---|
有符号 8 位整数 | –2^7 到 2^7–1 | int8 | –128 到 127 |
有符号 16 位整数 | –2^15 到 2^15–1 | int16 | –32,768 到 32,767 |
有符号 32 位整数 | –2^31 到 2^31–1 | int32 | –2,147,483,648 到 2,147,483,647 |
有符号 64 位整数 | –2^63 到 2^63–1 | int64 | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
无符号 8 位整数 | 0 到 2^8–1 | uint8 | 0 到 255 |
无符号 16 位整数 | 0 到 2^16–1 | uint16 | 0 到 65,535 |
无符号 32 位整数 | 0 到 2^32–1 | uint32 | 0 到 4,294,967,295 |
无符号 64 位整数 | 0 到 2^64–1 | uint64 | 0 到 18,446,744,073,709,551,615 |
MATLAB 默认情况下以双精度浮点形式 (double) 存储数值数据。
下面的 f 看似赋值为整数,实则自带存储为一个浮点数。
1.1 整数的最值
intmax('int8')
intmin('int8')
输出:
ans = 127
ans = -128
如果您将大于某个整数数据类型的最大值的数值转换为该类型,MATLAB 会将其设置为最大值。同样,如果您转换小于该整数数据类型的最小值的数值,MATLAB 会将其设置为最小值。
如:
y = int8(200)
x = int8(100)*3
的值都是127
。
1.2 大整数
大于flintmax
(9.0072e+15)的整数
>> flintmaxans =9.0072e+15
这个值还没有int64的最大值大:9.2234e+18
,更没有uint64最大值大:1.8447e+19
。
当创建由大整数(大于 flintmax)的数值组成的数组时,默认情况下,MATLAB 最初将输入表示为双精度值。当你将此输入转换为 int64 或 uint64 数据类型时,可能出现精度损失。为了保持精度,请改为对数组的每个标量元素调用 int64 或 uint64。
比如:
flintmaxX = int64([-12345678901234567 12345678901234567])Y = [int64(-12345678901234567) int64(12345678901234567)]
从 R2019b
开始,还可以使用整数的十六进制或二进制值创建整数数组而不会损失精度(注意十六进制的后缀加了s64
,表示有符号64位整数,后面会讲)。
Z = [0xFFD423ABA294B479s64 0x2BDC545D6B4B87s64]
1.3 当整数值超过了uint64最大值
uint64可以表示的最大整数是:18446744073709551615,约为 1.8 ∗ 1 0 19 1.8*10^{19} 1.8∗1019
大于这个值只能转换为浮点数吗?
转换为double类型,虽然可以表达的最大值变大了非常多,但是精度会丢失(小数位数有限),当然这么大的整数可能只在乎数量级了。这里仅作理论讨论。
🟢几种处理方式:
- (1)使用字符串或者字符数组;
- (2)使用第三方高精度数学库;
- (3)将其分隔为多个部分,再使用uint8等存储;
- (4)使用符号计算
Symbolic Math Toolbox
; - (5)使用十六进制或者二进制。
字符串和十六进制应该是最容易想到的,不过我们几乎不会遇到处理这种整数的情况。
1.4 和其它类型数值运算
🟢整数只能和同类型的整数进行运算,int8和int16这样无法进行运算。
🟢 int类型数据与其他类型数据运算后,结果与 int 类型一致,且受对应的int类型大小范围限制。
x = int16(100)*double(3)y = double(3)*int8(100)z = int8(1)*'a'
输出:
x = 300
y = 127
z = 97
即不会将结果转为更高精度的浮点数。
二、 浮点数
2.1 双精度和单精度
“浮点”指一组对实数进行编码的数据类型,包括分数和小数。浮点数据类型允许小数点后有不同位数,而定点数据类型在小数点前后则保留特定位数。因此与定点数据类型相比,浮点数据类型可以表示更广范围的数值。
由于计算机在数字表示和存储方面的内存有限,只能表示有限精度的浮点数有限集合。这种有限精度无法精确表示某些数值,因而会限制需要精确值或高精度的浮点计算的准确度。尽管浮点数有其局限性,但其计算速度快且精度和范围足以求解现实世界的很多问题,因此得到广泛使用。
MATLAB® 以双精度或单精度格式表示浮点数。
默认为双精度,但你可以通过一个简单的转换函数将任何数值转换为单精度数值。
(1)创建双精度数据
由于 MATLAB 的默认数值类型是 double 类型,因此可以用简单的赋值语句创建双精度浮点数。
x = 122
可以使用 double 函数将数值数据、字符或字符串以及逻辑数据转换为双精度值。例如,将有符号整数转换为双精度浮点数。
x = int8(120);
y = double(x)
(2)创建单精度数据
使用 single 函数创建单精度数值。
x = single(25.783);
2.2 浮点数的存储
默认情况下,MATLAB 根据 IEEE754 格式构造其 double 和 single 浮点数据类型,并遵循就近舍入,偶数优先舍入模式。
数据以二进制形式存储于计算机。
浮点数 x x x的二进制存储形式如下:
x = − 1 s ⋅ ( 1 + f ) ⋅ 2 e x=-1^s\cdot(1+f)\cdot2^e x=−1s⋅(1+f)⋅2e
其中:
- s 确定符号。
- f 是满足 0 ≤f< 1 的小数(或尾数)。
- e 是指数。
s、f 和 e 分别由内存中有限数量的位确定,其中 f 和 e 取决于数据类型的精度。
存储 double
数需要 64 位,如下表所示。
位 | 宽度 | 用法 |
---|---|---|
63 | 1 | 存储符号,其中 0 表示正值,1 表示负值,s |
62 到 52 | 11 | 存储指数,偏移量为 1023 ,e |
51 到 0 | 52 | 存储尾数 ,f |
存储 single
数需要 32 位,如下表所示。
位 | 宽度 | 用法 |
---|---|---|
31 | 1 | 存储符号,其中 0 表示正值,1 表示负值 |
30 到 23 | 8 | 存储指数,偏移量为 127 |
22 到 0 | 23 | 存储尾数 |
🟢 浮点数能表示的最大数量级:
用11个二进制位表示指数,则指数最大值为: 2 11 − 1 = 2047 2^{11}-1=2047 211−1=2047,
偏移量是1023,则最大指数为:2047 - 1023 = 1024,对应的数量级就是 2 1024 2^{1024} 21024, 1 0 308 10^{308} 10308,负数则是 1 0 − 308 10^{-308} 10−308
🟢浮点数能保存的十进制的最多有效位数:
以双精度为例:52位(二进制)表示尾数,一个2进制能表示的十进制数的位数是 l o g 10 2 log_{10}2 log102:。二进制形式存储尾数时候,最高位默认位1,53个二进制位能表示的十进制数的位数是:
53 ∗ l o g 10 2 ≈ 15.96 53*log_{10}2 \approx15.96 53∗log102≈15.96
所以double类型存储数据的有效位数是15到16位(如果是一个整数则是最大为2^53,即flinrmax
)。
同理single最多可以精确存储6到7位有效数字。
超过有效位数的时候,超过的部分就可能丢失精度。
即,double使用64个二进制位存储十进制数,这64个二进制位只有52个二进制位来存储尾数,对应十进制的15到16位有效数字。
🟠 浮点数的大小比较问题:
主要是小数部分,小数转为二进制有时候是无限循环的,但是一个double最多使用52位来存储小数部分对应的二进制,有限的二进制位就不能精确表示这个小数,只是无限精确。即使精确到99.99999999999%也不是等于。
比如 0.1+0.2 和 0.3 是不相等的。因为0.1和0.2对应的52位(尾数)二进制相加后和0.3的二进制不同:
转换
0.1
为二进制
0.1 * 2 = 0.2
→ 整数部分是 0,记录下来,剩余部分是 0.2。0.2 * 2 = 0.4
→ 整数部分是 0,记录下来,剩余部分是 0.4。0.4 * 2 = 0.8
→ 整数部分是 0,记录下来,剩余部分是 0.8。0.8 * 2 = 1.6
→ 整数部分是 1,记录下来,剩余部分是 0.6。0.6 * 2 = 1.2
→ 整数部分是 1,记录下来,剩余部分是 0.2。0.2 * 2 = 0.4
→ 整数部分是 0,记录下来,剩余部分是 0.4。可以看到,
0.1
的小数部分开始循环重复(0.1 = 0.00011001100110011...
),这是一个无限循环的二进制小数。
浮点数运算后,可以使用如下方式比较2个运算结果:
x+y-0.3<eps
eps
表示浮点相对精度,即2个距离最近的(双精度)浮点数之间的距离。d = eps("single")
则为2个距离最近的single之间的距离。
>> epsans =2.2204e-16
2.3 浮点数的最值
double_max = realmax('double')
double_min = realmin('double')single_max = realmax('single')
single_min = realmin('single')
double_max = 1.7977e+308
表示 1.797 ∗ 1 0 308 1.797*10^{308} 1.797∗10308。这个数是极大的,是太阳质量的数量级的10多倍。
超过这个范围的数记为Inf,-Inf
。
2.4 浮点数的“四舍五入”
❄️ (1)直接使用int8等转换函数转换为整数类型,规则是,小数部分四舍五入;
❄️ (2)round函数:支持多种转换方案
-
a. 小数部分四舍五入,结果为double类型:
round(x)
-
b. 四舍五入到 N 位数(N可用为正负、零,从小数点向两边数起):
Y = round(X,N)
-
c. 指定四舍五入类型:
Y = round(X,N,type)
type的取值有"decimals" (默认) | "significant"
,前者指定保留的小数位数,等同于:Y = round(X,N)
若使用第二个参数,四舍五入到具有N 个有效位数
的最近数值:
num = 1234.456
num_round_2 = round(num,2,'significant')
num_round_3 = round(num,3,'significant')
输出分别是1200
和1230
。
- d.指定处理方向,结值处理方向,指定为以下值之一:
Y = round(___,TieBreaker=direction)
“fromzero” - 将结值朝偏离零的方向舍入到模更大的最接近的整数。
“tozero” - 将结值朝零方向舍入到模更小的最接近的整数。
“even” - 将结值舍入到最接近的偶数。
“odd” - 将结值舍入到最接近的奇数。
“plusinf” - 将结值朝正无穷大方向舍入到更大的最接近的整数。
“minusinf” - 将结值朝负无穷大方向舍入到更小的最接近的整数。
例:
num = 1.5
num_round_1 = round(num,'TieBreaker','fromzero') % 输出是2
num_round_2 = round(num,'TieBreaker','tozero') % 输出是1
上面2个参数主要是针对小数等于0.5
的情况。而,num = 1.2,结果均为1,num=1.7,结果均为2。
推荐使用round进行正常四舍五入,带方向的可以使用下列函数:
❄️ (3)floor(X)函数:将 X 的每个元素四舍五入到小于或等于该元素
的最接近整数。
❄️ (4)ceil(X)函数:将 X 的每个元素四舍五入到大于或等于
该元素的最接近整数。
❄️ (5)fix(X) 函数:将 X 的每个元素朝零方向
四舍五入为最近的整数。此操作实际上是通过删除 X 中每个数的小数部分,将它们截断为整数:
2.5 浮点数的算术运算
就几条规则:
double
类型可用和任意类型进行运算。常见:single、double、char、logic、任意int类型- 和single运算的结果是single;
- 和整数运算结果为对应的整数类型,且结果受到对应整数类型的最值限制;
- 其它结果都为double类型。
single
类型只能和以下类型运算:single、double、char、logic(即不能和整数运算)。结果都为single
。
2.6 意外:舍入误差、抵消、淹没和中间转换
之前已经说过了,浮点数可能需要无限个二进制位来精确存储,但这不现实,实际上只能用64位来存储一个浮点数,所以会导致一些不准确或者意料之外的结果。
意外的结果并非 MATLAB 中的 Bug,任何使用浮点数的软件都会出现这种情况。如果需要数值的精确有理表示形式,请考虑使用
Symbolic Math Toolbox™
。
(1)舍入误差:
浮点数的有限精度表示可能导致舍入误差。例如 π \pi π。
>> sin(pi)ans =1.2246e-16
当对浮点数执行许多运算时,误差会不断累积和复合,舍入误差最为显著。最佳做法是尽可能减少运算次数。
(2)抵消:根据 eps 的测量,从数量级大致相同
的一个数中减去另一个数时,可能发生抵消。
(3)淹没:对数量级相差特别大的浮点数执行运算时,可能发生淹没。
(3)中间转换:使用不同数据类型执行算术时,中间计算和转换可能会产生意外的结果。
三、复数
复数由两个单独的部分组成:实部和虚部。
基本虚数单位等于 -1 的平方根。这在 MATLAB® 中通过以下两个字母之一表示:i 或 j
。
直接创建:
x = 2 + 3i;
使用complex
函数创建:z = complex(a,b)
通过两个实数输入创建一个复数输出 z:z = a + bi
。
- 获取实部:
real(z)
- 获取虚部:
imag(z)
实部和虚部的要求:
- 同为一种类型的整数
- 同为浮点数(double+single混用结果实部和虚部都为single)
数乘复数要求一样的,数要和复数的实部和虚部类型一致,实部和虚部都会同时进行相同的运算。
四、二进制和十六进制
在 MATLAB® 中,有两种方式来表示十六进制和二进制值:
-
作为字面值。从 R2019b 开始,您可以使用适当的前缀作为表示法,将十六进制和二进制值写成字面值。例如,字面值 0x2A 指定 42,MATLAB 会将其存储为数字而不是文本。
-
作为字符串或字符向量。例如,字符向量 ‘2A’ 将数字 42 表示为十六进制值。当您使用文本表示十六进制或二进制值时,请用引号将它括起来。MATLAB 将这种表示存储为文本,而不是数字。
MATLAB 中的一些函数可用于将数字与其十六进制及二进制表示相互转换。
五、其它
5.1 无穷和NaN
5.2 数值显示格式
5.3 检查数据类型
5.4 合并不同类型
相关文章:

【matlab】数据类型01-数值型变量(整数、浮点数、复数、二进制和十六进制)
文章目录 一、 整数1.1 整数的最值1.2 大整数1.3 当整数值超过了uint64最大值1.4 和其它类型数值运算 二、 浮点数2.1 双精度和单精度2.2 浮点数的存储2.3 浮点数的最值2.4 浮点数的“四舍五入”2.5 浮点数的算术运算2.6 意外:舍入误差、抵消、淹没和中间转换 三、复…...
引入第三方jar包部署服务器后找不到jar处理方法
在使用Spring Boot打包为可执行的JAR文件并部署到服务器时,有时会遇到找不到第三方JAR包的问题。这通常是因为服务器上缺少了这些JAR包,或者JAR包的版本不匹配。下面我将介绍两种常见的解决方案:使用Maven安装本地JAR包和使用Maven插件方式。…...

neo4j desktop基本入门
下载安装不在赘述,本文只记述一些neo4j的基本入门操作 连接本地neo4j数据库 1. 点击ADD添加连接 端口一般是7687 账户名和密码忘记了,可以通过neo4j web(默认为neo4jneo4j://localhost:7687/neo4j - Neo4j Browser)重置密码 AL…...
前端系统设计面试题(二)Javascript\Vue
如何设计一个基于 WebAssembly 的前端应用,并实现简单的计算功能? 设计一个基于 WebAssembly 的前端应用并实现简单计算功能,可以按照以下步骤进行: 编写计算功能的代码: 使用C、C或Rust等语言编写计算功能的代码。例…...

军工行业运维:监控易引领自主可控新潮流
在军工行业,信息安全和技术创新始终是发展的重中之重。随着信息化建设的不断深入,对监控产品的要求也日益严格。 监控易作为一款高性能、全面性的运维监控解决方案,凭借其国产化、自主可控的特性,以及对军工行业特殊需求的深刻理解…...
unity3d————接口基础知识点
接口的基本概念 定义接口:使用 interface 关键字定义接口。接口中的成员默认是 public,不能有访问修饰符,也不能包含字段、构造函数或实现的方法,只能包含方法、属性、事件和索引器的声明。 实现接口:类使用 : 冒号后…...
蓝队基础5 -- 安全策略与防护技术
声明: 本文的学习内容来源于B站up主“泷羽sec”视频“蓝队基础之网络七层杀伤链”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关…...
【Bluedroid】A2dp初始化流程源码分析
一、概述 Bluedroid是Android系统中用于蓝牙通信的底层协议栈,它支持多种蓝牙协议,包括A2DP(Advanced Audio Distribution Profile,高级音频分发协议)。A2DP主要用于通过蓝牙传输高质量音频,如立体声音乐。以下是Bluedroid中A2DP初始化的基本流程。 1.1. 启动Bluetooth…...
Redis简介、数据结构、高性能读写、持久化机制、分布式架构
Redis 是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件等,以下是对 Redis 的详细介绍: 数据结构丰富 Redis 支持多种数据结构,如字符串(String)、哈希(Hash&am…...

鸿蒙自定义UI组件导出使用
上期讲解了在Entry入口写了一个系统的下拉列表组件,如果我们想要封装一个可供复用的组件供团队其他人使用,那么需要掌握一下自定义组件的写法: 1、自定义可导入组件 - export 声明模块 如果要定义一个在外部可使用的组件 , 需要再定义组件…...
python os.path.join 详解
os.path.join 是 Python 中 os 模块提供的一个函数,用于智能地连接一个或多个路径组件。它可以根据操作系统的不同,自动选择合适的路径分隔符(如 Windows 上的反斜杠 \ 或 Unix/Linux 上的正斜杠 /),从而生成正确的路径…...
JavaScript高效处理CSV文件的操作指南
前言 CSV(Comma-Separated Values)文件是一种广泛应用于数据存储和交换的格式,尤其在数据分析、数据迁移和系统集成等场景中有着重要作用。作为高级计算机工程师,本文将通过专业且通俗易懂的方式,介绍如何利用JavaScr…...

Go开发指南- Goroutine
目录: (1)Go开发指南-Hello World (2)Go开发指南-Gin与Web开发 (3)Go开发指南-Goroutine Goroutine 在java中我们要实现并发编程的时候,通常要自己维护一个线程池,并且需要去包装任务、调度任务和维护上下文切换。这个过程需要消耗大量的精…...

Dubbo 3.x源码(24)—Dubbo服务引用源码(7)接口级服务发现订阅refreshInterfaceInvoker
基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了Dubbo3.1版本的MigrationRuleHandler这个处理器,它用于通过动态更改规则来控制迁移行为。MigrationRuleListener的onrefer方法是Dubbo2.x 接口级服务发现与Dubbo3.x应用级服务发现…...
高级java每日一道面试题-2024年11月04日-Redis篇-Redis如何做内存优化?
如果有遗漏,评论区告诉我进行补充 面试官: Redis如何做内存优化? 我回答: 在Java高级面试中,关于Redis如何做内存优化的问题,可以从以下几个方面进行详细解答: 一、Redis内存优化概述 Redis内存优化主要是指通过一系列策略和技术&#…...

数据结构 -二叉搜索树
一.什么是二叉搜索树 树插入删除方便比线性数组 二.二叉搜索树的查找操作 尾递归可以用循环递归 三.二叉树的插入操作 35要挂在33上面必须记住33的位置 解决方法,要求递归函数返回一个 结点插到33的右子树 四.二叉搜索树的删除 要是删除的是叶子节点之间删除 只有一…...
Ubuntu配置阿里云docker apt源
一、配置阿里云docker apt源 Ubuntu 放弃了apt-key的GPG 密钥的管理方法,用户可以直接添加gpg密钥到/etc/apt/trusted.gpg.d/目录下。 同时添加删除apt source 直接在/etc/apt/sources.list.d/目录下操作即可。 1、删除旧的镜像源 #旧版操作方法 apt-key list # …...

【React】状态管理之Redux
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 状态管理之Redux引言1. Redux 的核心概念1.1 单一数据源(Single Sou…...

3195. 有趣的数-13年12月CCF计算机软件能力认证(组合数)
题目 思路 统计方案的时候先去分类,先放01,然后在考虑23对于第k类, 对于01的选择 对于所有的分类:本题我觉得要考虑的几个点就是:状态分类得到数学公式组合数的计算防越界处理 代码 计算组合数的代码模板࿱…...

基于 Python 的 Bilibili 评论分析与可视化
一、项目概述 本项目利用 Python 对 Bilibili (哔哩哔哩)平台上的视频评论数据进行爬取、清洗和分析,并通过可视化展示数据的主要特征。我们通过以下几个步骤实现了这一过程: 数据爬取:使用 Bilibili 提供的 API 获取…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...