MATLAB的数据类型和各类数据类型转化示例

一、MATLAB的数据类型

MATLAB ,数据类型是非常重要的概念,因为它们决定了如何存储和操作数据。MATLAB持数值型、字符型、字符串型、逻辑型、结构体、单元数组、数组和矩阵等多种数据类型。MATLAB 是一种动态类型语言,这意味着变量的数据类型是在赋值时自动确定的。用户可以直接赋值,MATLAB 会根据所赋的值自动推断变量的类型。MATLAB可以使用 whos 查看变量信息(包括变量的名称、大小、字节数、数据类型等)

1. 数值型(Numeric Types)

int8int16int32int64: 有符号整数

uint8uint16uint32uint64: 无符号整数

singledouble: 浮点数(单精度和双精度)

% 数值型赋值

% 数值型赋值

 a = 10; % MATLAB 自动将 a 识别为 double 类型

 b = 3.14159; % 同样,b 被识别为 double 类型

 c = int8(5); % 可以手动指定类型为 int8

 d=single(3.14159)% 可以手动指定类型为 single

whos

2. 字符型(Character Arrays)

用单引号括起来的字符序列,例如 'Alice'

name = 'Alice'; % 字符数组

3. 字符串型(String Arrays)

用双引号括起来的字符串,例如  "Hello, world!"

greeting = "Hello, world!"; % 字符串数组

4. 逻辑型(Logical)

true 或 false

% 逻辑型赋值

isPassed = true; % 逻辑型变量

5. 结构体(Struct)

用于存储不同类型和大小的数据集合

% 结构体赋值

person.name = "Bob";

 person.age = 25;

person.height = 180.5;

6.  单元数组(Cell Array)

可以包含不同类型的数据

% 单元数组赋值 cellArray = {'apple', 42, false}; % 可以包含不同类型的数据

7. 数组和矩阵(Arrays and Matrices)

数值型、字符型或其他类型的数据组合

% 数组和矩阵赋值

numbers = [1, 2, 3, 4, 5, 6]; % 行向量

matrix = [1, 2; 3, 4]; % 2x2 矩阵

下面给出一个应用whos查看已创建不同类型的数据变量的实例

% 清除工作区中的所有变量

clear;

% 创建不同类型的变量

numericVar = 42;                   % 数值型

stringVar = 'Hello, MATLAB!';      % 字符型

logicalVar = true;                 % 逻辑型

structVar = struct('name', 'John', 'age', 30); % 结构体

cellVar = {'MATLAB', 3.14, true};  % 单元数组

complexVar = 3 + 4i;               % 复数型

% 使用 whos 查看变量信息

disp('Variable information using whos:');

whos;

% 若想只查看特定变量的信息,可以传递变量名给 whos

disp('Information for specific variable (numericVar):');

whos numericVar;

% 若想查看变量的详细信息,可以使用 whos 的输出形式

varInfo = whos;

% 显示变量的数据类型

disp('Variable names and their types:');

for i = 1:length(varInfo)

    fprintf('%s: %s\n', varInfo(i).name, varInfo(i).class);

end

二、MATLAB不同数据类型转换实例

% MATLAB 数据类型转换示例

% 数值类型赋值

a = 10; % double 类型

b = int8(5); % int8 类型

c = 3.14; % double 类型

d = single(2.718); % single 类型

% 复数赋值

z = 1 + 2i;

% 字符和字符串赋值

charArray = 'hello';

stringArray = "world";

% 逻辑类型赋值

isTrue = true;

isFalse = false;

% 结构体赋值

person.name = "Alice";

person.age = 30;

person.isStudent = false;

% 单元数组赋值

cellArray = {charArray, stringArray, isTrue, person};

% 数组和矩阵赋值

matrix = [1, 2, 3; 4, 5, 6];

% 数值类型转换

a_int8 = int8(a); % 将 double 转换为 int8

b_double = double(b); % 将 int8 转换为 double

c_single = single(c); % 将 double 转换为 single

d_double = double(d); % 将 single 转换为 double

% 复数到实数的转换

z_real = real(z); % 提取实部

z_imag = imag(z); % 提取虚部

% 字符和字符串转换

charFromString = char(stringArray); % 将字符串转换为字符数组

stringFromChar = string(charArray); % 将字符数组转换为字符串

% 逻辑类型到数值的转换

isTrue_numeric = double(isTrue); % 将逻辑值转换为数值(1 或 0)

isFalse_numeric = double(isFalse);

% 结构体到单元数组的转换

personCell = struct2cell(person); % 将结构体转换为单元数组

% 单元数组到结构体的转换(假设单元数组格式正确)

newPerson = cell2struct(personCell, fieldnames(person));

% 数组和矩阵转换

matrix_single = single(matrix); % 将 double 矩阵转换为 single 矩阵

matrix_int8 = int8(matrix); % 将 double 矩阵转换为 int8 矩阵(可能会丢失精度)

% 显示转换结果

disp('Converted Values:');

disp(['a_int8: ', num2str(a_int8)]);

disp(['b_double: ', num2str(b_double)]);

disp(['c_single: ', num2str(c_single)]);

disp(['d_double: ', num2str(d_double)]);

disp(['z_real: ', num2str(z_real)]);

disp(['z_imag: ', num2str(z_imag)]);

disp(['charFromString: ', charFromString]);

disp(['stringFromChar: ', stringFromChar]);

disp(['isTrue_numeric: ', num2str(isTrue_numeric)]);

disp(['isFalse_numeric: ', num2str(isFalse_numeric)]);

disp('personCell:');

disp(personCell);

disp('newPerson:');

disp(newPerson);

disp('matrix_single:');

disp(matrix_single);

disp('matrix_int8:');

disp(matrix_int8);

    如果大家觉得本文对大家学习和研究有所帮助,请点赞、关注,欢迎转发!谢谢大家!

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

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

相关文章

【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开

之前在Vmware虚拟机里配置了mumu模拟器,现在想要移植到宿主机中 1、虚拟机中的MuMu模拟器12-1是目标系统,对应的目录如下 C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-1 2、Vmware-虚拟机-设置-选项,启用共享文件夹 3、复…

DeepSeek介绍及使用ollama本地化部署DeepSeek-R1大模型

DeepSeek 中文名深度求索人工智能基础技术研究有限公司(简称“深度求索”或“DeepSeek”),成立于2023年,是一家专注于实现AGI的中国公司。 在本月初推出 DeepSeek-R1后,该公司宣称其在执行数学、编码和自然语言推理等任务时“性能可与OpenAI…

金融级分布式数据库如何优化?PawSQL发布OceanBase专项调优指南

前言 OceanBase数据库作为国产自主可控的分布式数据库,在金融、电商、政务等领域得到广泛应用,优化OceanBase数据库的查询性能变得愈发重要。PawSQL为OceanBase数据库提供了全方位的SQL性能优化支持,助力用户充分发挥OceanBase数据库的性能潜…

简要介绍C语言与c++共有的数学函数

C语言和C都提供了丰富的数学函数&#xff0c;这些函数主要定义在 <math.h>&#xff08;C语言&#xff09;和 <cmath>&#xff08;C&#xff09;头文件中。以下分别介绍C语言与C共有的数学函数&#xff0c;以及C特有的数学函数。 C语言与C共有的数学函数&#xff08…

NVIDIA GPU介绍:概念、序列、核心、A100、H100

概述 入职一家大模型领域创业公司&#xff0c;恶补相关知识。 概念 一些概念&#xff1a; HPC&#xff1a;High Performance Computing&#xff0c;高性能计算SoC&#xff1a;System on Chip&#xff0c;单片系统FLOPS&#xff1a;Floating Point Operations Per Second&am…

Python中的函数(下)

函数返回值 返回单个值 函数可以通过 return 语句返回一个值。一旦执行到 return 语句&#xff0c;函数就会停止执行&#xff0c;并将指定的值返回给调用者。例如&#xff1a; 返回多个值 实际上&#xff0c;Python函数只能返回一个值&#xff0c;但可以通过返回一个元组来模…

python算法和数据结构刷题[2]:链表、队列、栈

链表 链表的节点定义&#xff1a; class Node():def __init__(self,item,nextNone):self.itemitemself.nextNone 删除节点&#xff1a; 删除节点前的节点的next指针指向删除节点的后一个节点 添加节点&#xff1a; 单链表 class Node():"""单链表的结点&quo…

https数字签名手动验签

以bing.com 为例 1. CA 层级的基本概念 CA 层级是一种树状结构&#xff0c;由多个层级的 CA 组成。每个 CA 负责为其下一层级的实体&#xff08;如子 CA 或终端实体&#xff09;颁发证书。层级结构的顶端是 根 CA&#xff08;Root CA&#xff09;&#xff0c;它是整个 PKI 体…

S4 HANA明确税金本币和外币之间转换汇率确定(OBC8)

本文主要介绍在S4 HANA OP中明确明确税金本币和外币之间转换汇率确定(OBC8)相关设置。具体请参照如下内容&#xff1a; 明确税金本币和外币之间转换汇率确定(OBC8) 以上配置&#xff0c;我们可以根据不同公司代码所配置的使用不同的汇率来对税金外币和本币之间进行换算。来针对…

YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)

目录 前言 1. 需修改的源码文件 1.1添加C2f_v2模块 1.2 修改模型读取方式 1.3 增加 L1 正则约束化训练 1.4 在tensorboard上增加BN层权重和偏置参数分布的可视化 1.5 增加剪枝处理文件 2. 工程目录结构 3. 源码文件修改 3.1 添加C2f_v2模块和模型读取 3.2 添加L1正则…

深入解析 C++17 中的 std::not_fn

文章目录 1. std::not_fn 的定义与目的2. 基本用法2.1 基本示例2.2 使用 Lambda 表达式2.3 与其他函数适配器的比较3. 在标准库中的应用3.1 结合标准库算法使用3.1.1 std::find_if 中的应用3.1.2 std::remove_if 中的应用3.1.3 其他标准库算法中的应用4. 高级技巧与最佳实践4.1…

【腾讯云】腾讯云docker搭建单机hadoop

这里写目录标题 下载jdk hadoop修改hadoop配置编写Dockerfile构建镜像运行镜像创建客户端 下载jdk hadoop wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz wget --no-check-certificate https://repo.huaweicloud.…

SpringBoot 原理分析

SpringBoot 原理分析 依赖管理相关 启动器 starter Spring Boot 的 Starter 是预定义依赖项集合&#xff0c;可简化 Spring 应用配置与构建&#xff0c;启动时自动引入所需库、配置和功能。 Spring Boot 有很多预定义 Starter&#xff0c;如 spring - boot - starter - web 用…

MySQL 索引存储结构

索引是优化数据库查询最重要的方式之一&#xff0c;它是在 MySQL 的存储引擎层中实现的&#xff0c;所以 每一种存储引擎对应的索引不一定相同。我们可以通过下面这张表格&#xff0c;看看不同的存储引擎 分别支持哪种索引类型&#xff1a; BTree 索引和 Hash 索引是我们比较…

5.桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;乃至多个纬度的变化。 &#xfeff;class Messager{ public:// 登录virtual void Login(string username, string password)0;// 发送消息virtual void SendMessage(string message)0;/…

【Rust自学】15.1. 使用Box<T>智能指针来指向堆内存上的数据

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 15.1.1. Box<T> box<T>可以被简单地理解为装箱&#xff0c;它是最简单的智能指针&#xff0c;允许你在堆内存上存储数据&am…

【电工基础】低压电器元件,低压断路器(空开QF),接触器(KM)

一.低压电器元件定义 电器可分为高压电器和低压电器两大类&#xff0c;我国现行标准是将工作在交流1200V(50Hz)以下、直流1500V以下的电器设备称为低压电器。 二.低压断路器&#xff0c;空开&#xff0c;空气断路器 1.空开图片与使用方式 当电路中发生严重过载、短路及失压等故…

论文阅读(七):贝叶斯因果表型网络解释遗传变异和生物学知识

1.论文链接&#xff1a;Bayesian Causal Phenotype Network Incorporating Genetic Variation and Biological Knowledge 摘要&#xff1a; 在分离群体中&#xff0c;数量性状基因座&#xff08;QTL&#xff09;定位可以确定对表型有因果效应的QTL。这些方法的一个共同特点是Q…

DeepSeek-R1 模型及GRPO算法学习

总结DeepSeek-R1 模型算法&#xff0c;并对其中的GRPO算法做一些学习补充。 DeepSeek-R1 论文总结 提出了通过强化学习提升大语言模型推理能力的方法&#xff0c;开发出 DeepSeek-R1-Zero 和 DeepSeek-R1 模型&#xff0c;在多个推理任务上表现出色&#xff0c;并开源模型推动…

灰色预测模型

特点&#xff1a; 利用少量、不完全的信息 预测的是指数型的数值 预测的是比较近的数据 灰色生成数列原理&#xff1a; 累加生成&#xff1a; 累减生成&#xff1a;通过累减生成还原成原始数列。 加权相邻生成&#xff1a;&#xff08;会更接近每月中旬&#xff0c;更推荐…