matlab 常用数据类型的转换
目录
- 一、数据类型
- 1、整型
- 2、浮点型
- 3、逻辑型
- 4、元胞数组
- 5、结构体
- 二、数据类型转换
- 三、图像数据类型转换
- 四、参考链接
一、数据类型
1、整型
int
和unit
都是整型,只是前一个有符号,后一个没有符号,比如在16位系统中,int
范围是-32768-32767
,unit
范围是0-65535
。
2、浮点型
single
和double
都是浮点型(单精度、双精度),只是single
最多可以显示小数点后7位,double
最多可以显示小数点后14位;single
变量存储大小位32位(4个字节),double
变量存储大小为64位(8个字节)。
3、逻辑型
logical
是逻辑数据类型,有0和1两种。
4、元胞数组
cell array
元胞数组类型,数组元素可以是不同的数据类型。
5、结构体
structure
为结构体类型,与C语言的结构体类似,例创建一个station结构体,有两种方式,一是通过‘结构体名称.字段名称’进行创建和赋值,ctation.name=‘s’;station.x=100;station.y=120;二是通过struct创建结构体,station=struct('name',{s},'x',{100},'y',{120})
。
char
为字符串类型;例如‘Hello,world!’
。
二、数据类型转换
浮点数128.4转换为整数:
a = int8(128.4)=127
高位溢出,因为128.4超出了int8的范围(-128~127),需要用:
a = int16(128.4)=128
a = round(128.4)=128
round()
函数为取整函数,小数部分小于0.5则舍去,即四舍五入。
a = fix(128.4)=128
a = fix(-128.6)=-128
fix()
函数为向0取整函数。
三、图像数据类型转换
1、uint8
转化为double
用来方便图像的运算:double
函数只是将读入图像的uint8
数据转换为double类型,一般不使用。常用的是im2double
函数,将uint8
图像转为double
类型,范围为0-1
,如果是255
的图像,那么255转为1,0还是0,中间的做相应改变。
matlab中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double。
-
I2=im2double(I1)
:把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出。默认情况下,matlab将图像中的数据存储为double型,即64位浮点数。 -
im2double()
:将图象数组转换成double精度类型。 -
im2single()
: 将图像转化为single类型。 -
im2uint8()
:将图象数组转换成unit8类型。 -
im2uint16()
:将图象数组转换成unit16类型。
2、uint8
和im2uint8
的区别
在数据类型转换时候uint8
和im2uint8
的区别,uint8
的操作仅仅是将一个double
类型的小数点后面的部分去掉;但是im2uint8
是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。
图像数据在计算前需要转换为double,以保证精度;很多矩阵数据也都是double的,要想显示,必须先转换为图像的标准数据格式。
如果转换前的数据符合图像数据标准(比如是double则要位于0~1之间),那么可以直接使用im2uint8
。如果转换前的数据分布不合规律,则使用uint8
,将其自动切割至0~255(超过255的按255),因此最好使用mat2gray
,将一个矩阵转化为灰度图像的数据格式(double)。
3、double
类型图像的显示
图像数据在进行计算前要转化为double
类型的,这样可以保证图像数据运算的精度。很多矩阵的很多矩阵数据也都是double
的,要想显示它,必须先转换为图像的标准数据格式。
如果直接运行imshow(I)
,显示的是一个白色的图像。这是因为imshow()
显示图像时对double
型是认为在0-1范围内,即大于1时都是显示为白色,而imshow
显示uint8
型时是0~255范围。经过运算后范围在0-255之间的double
型数据就被不正常得显示为白色图像了。
具体方法有:
-
imshow(I/256);
将图像矩阵转化到0-1之间 -
imshow(I,[]);
自动调整数据的范围以便于显示 (注意这里,必须是灰度图,负责不行) -
imshow(uint8(I));
-
imshow(mat2gray(I));
上面的mat2gray
是将最终获得的矩阵转化为灰度图像。常用的为:
A = im2uint8(mat2gray(result))
这样就将result
矩阵转化为uint8
类型的图像。
四、参考链接
- matlab中各种数据类型及转换
- 数据类型转换matlab,MATLAB常用数据类型的转换
相关文章:
matlab 常用数据类型的转换
目录 一、数据类型1、整型2、浮点型3、逻辑型4、元胞数组5、结构体 二、数据类型转换三、图像数据类型转换四、参考链接 一、数据类型 1、整型 int和unit都是整型,只是前一个有符号,后一个没有符号,比如在16位系统中,int范围是-3…...

Cocos Creator2D游戏开发(6)-飞机大战(4)-敌机产生
敌机产生&玩家发射子弹 敌机产生: 创建一个空节点 创建一个敌机预制体 把敌机图片拖入预制体内 使用代码生成敌机 让敌机动起来 创建一个预制体enemy_prefab双击预制体enemy_prefab,然后拖入一个敌机图片,设置好方向和尺寸,一定要记得保存然后关闭(场景编辑器里面的保存)…...

Hugo部署到Vercel踩大坑——全是XML文件?
问题描述 部署到Vercel全都是XML文件 Vercel是著名PAAS服务,相比于 Github Pages,其中国大陆可直接访问,因此尝试把Hugo站点发布到vercel中,部署后遇到问题,所有页面都为xml文件,如下所示: Ve…...
2024 暑假友谊赛-热身1
[ABC102D] Equal Cut - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路:找在区间[2,n-1]中找到i,j,k三个点,把序列分割成4个区间:[1,i],[i1,j],[j1,k],[k1,n] 暴力的做法是枚举i,j,k加上前缀和是o(n^3)的 key:"考虑枚举处于中间的j,然后用i平衡左两个区间,…...

Nginx系列-11 HTTP消息处理流程
背景 了解Nginx处理HTTP请求的11个阶段,有助于理解和配置nginx、自定义模块、基于lua模块自定义功能。按如下配置,执行"curl http://localhost:8001/query/test.html",如果读者对结果不是很确定,建议阅读本文。 serve…...

前端知识--前端访问后端技术Ajax及框架Axios
一、异步数据请求技术----Ajax Ajax是前端访问后端的技术,为异步请求(不刷新页面,请求数据,只更新局部数据)。 例如:在京东网站中搜索电脑,就会出现一些联想搜索,但此时页面并没有…...

【前端/js】使用js读取本地文件(xml、二进制)内容
目录 说在前面FileReaderDOMParser文本文件二进制文件 说在前面 浏览器版本:Microsoft Edge 126.0.2 (正式版本) (64 位) FileReader MDNFileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容&#x…...

初步入门C ++之类的概念
文章目录 0 Hello World!1 编译过程2 类2.1 类的概念2.2 构造函数与析构函数 0 Hello World! #include <iostream> //相当于#include <stdio.h>int main(int argc, char argv[]) {char c;std::cout << "Hello World!\n" <<…...

什么是技术作家风格指南?
技术写作风格指南旨在提供必要的格式风格,以帮助技术作家为读者创建引人入胜且一致的内容。然而,技术写作与普通的自由写作有很大不同。目的是将复杂的技术主题分解为易于理解的内容,以帮助读者了解如何使用产品或服务。 在本文中࿰…...
WebGIS学习——Cesium|Javascript
1.Cesium学习什么:Cesium实战项目说明-CSDN博客 2.Cesium绘制图形(箭头等):Cesium 态势标绘 _cesium态势标绘-CSDN博客 3.CesiumThree集成 4.Cesium深度图相关:Cesium离屏渲染深度图实验_cesium 离屏渲染-CSDN博客 5.洪涝:cesium淹没分析…...

Qt,获取其他.exe文件的标准输出流的信息(printf/print的输出信息)
比如,通过Python编写爬虫软件功能是运行程序获取豆瓣电影排行榜信息,并通过print打印出来。将其打包成.exe,通过Qt来调用,并获取到.exe程序运行的结果 简单示例代码: // 创建 QProcess 对象QProcess process;// 连接信号槽以获取…...

LeetCode 热题 HOT 100 (010/100)【宇宙最简单版】
【链表】No. 0206 反转链表 【简单】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持…...
Ubuntu24.04安装mysql-server小计,解决mysql_secure_installation时不能重置密码的问题
Ubuntu24.04安装mysql-server小计,解决mysql_secure_installation时不能重置密码的问题 为什么要写这往篇文章? 一般情况下,我安装mysql都用源码编译,以此方便安装更多自定义插件,但这次只需要安装一台开发机&#x…...

unity3d:TabView,UGUI多标签页组件,TreeView树状展开菜单
概述 1.最外层DataForm为空壳编辑数据用。可以有多个DataForm,例如福利DataForm,抽奖DataForm 2.Menu层为左边栏层,每个DataForm可以使用不同样式的MenuForm预制体 3.DataForm中使用ReorderList,可排列配置 4.有定位功能…...
go语言map底层及扩容机制原理详解(下)
前言 上文对Go map的底层数据结构有所了解,并对其扩容机制的步骤进行简略的描述。本文将会详细地去解释Go map扩容机制的详细原理。 1. 触发扩容操作 在go语言中,当我们插入一个元素到hmap时,会有以下两种情况: 若元素存在&…...

网络协议二 : 使用Cisco Packet Traceer工具模拟网络环境,集线器,网桥,交换机,路由器,IP,同一网段
1. 安装 Cisco Packet Tracer baidu 网盘地址,感谢大神分享 安装,破解,中文化,都有说明,建议使用7.x的那个版本,感觉比8.x的翻译要完整一点 https://pan.baidu.com/s/18iWBOfhJJRhqgQqdNQcfMQ?pwddcch#…...

Aria2 任意文件写入漏洞
目录 Aria2介绍漏洞描述漏洞复现 Aria2介绍 Aria2是一个在命令行下运行,多协议,多来源下载工具(HTTP / HTTPS,FTP,BitTorrent,Metalink),内建XML-RPC用户界面。Aria提供RPC服务器&a…...

成为git砖家(4): git status 命令简介
1. untracked 和 tracked 状态 Remember that each file in your working directory can be in one of two states: tracked or untracked. Tracked files are files that were in the last snapshot, as well as any newly staged files; they can be unmodified, modified, o…...

2-48 基于matlab的EM算法聚类可视化程序
基于matlab的EM算法聚类可视化程序,通过期望最大化算法(EM)优化类别间距,使得类别间距最大、类内间距最小。输出聚类前后结果及收敛曲线。程序已调通,可直接运行。 2-48 期望最大化算法(EM) 聚类…...
k8s 使用技巧
文章目录 kubectlkubectl 自动补全kubectl 上下文和配置打印当前使用 API 调用过程生成yaml模板强制删除 Pod(即使处于Terminating) kubectl kubectl 自动补全 source < (kubectl completion bash) # setup autocomplete in bash, bash-completion …...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...