MATLAB中的table数据类型:高效数据管理的利器

news2025/6/3 18:39:20

MATLAB中的table数据类型:高效数据管理的利器

什么是table数据类型?

MATLAB中的table是一种用于存储列向数据的数据类型,它将不同类型的数据组织在一个表格结构中,类似于电子表格或数据库表。自R2013b版本引入以来,table已成为MATLAB中处理表格数据的首选方式。

table的每个列可以包含不同类型的数据(数值、字符、分类、逻辑等),但每列必须具有相同的行数。这种数据结构特别适合处理异构数据集,是数据分析和工作流中的重要工具。

创建table

基本创建方法

这里就如同excel创建的内容一样,只是在matlab中需要使用数组进行创建,需要保证内容维度相同。

% 从工作区变量创建table
names = {'Alice'; 'Bob'; 'Charlie'};
ages = [25; 30; 35];
height = [1.68; 1.82; 1.75];
isStudent = [true; false; false];
%创建table
personTable = table(names, ages, height, isStudent)

在这里插入图片描述

指定列名和行名

表的变量名可以创建时同时生成,或者随后更改

personTable = table(names, ages, height, isStudent, ...
    'VariableNames', {'FullName', 'Years', 'Height_m', 'IsStudent'}, ...
    'RowNames', {'Person1', 'Person2', 'Person3'})
% 创建后修改列名
personTable.Properties.VariableNames = {'Name', 'Age', 'Height', 'IsStudent'};

从文件导入数据创建table

表格内容可以直接excel导入,或者CSV文件导入,文件内容如下:
在这里插入图片描述
但是导入之后需要调整标签内容

% 从CSV文件读取
dataTable = readtable('mydata.csv');

% 从Excel文件读取
excelTable = readtable('data.xlsx', 'Sheet', 'Sheet1')
% 提取每一行的名字
rowName=excelTable.Var1;
% 删除第一行
excelTable.Var1=[];
% 给每一行名字
excelTable.Properties.RowNames=rowName;

% 显示前几行
head(excelTable)

excel直接读入的内容:第一列并不是名字,需要移除后重新添加列名
在这里插入图片描述

访问和操作table数据

数据索引方法

% 使用点表示法访问列
ages = personTable.Age

% 使用大括号访问原始数据
firstHeight = personTable{1, 'Height'}

% 使用圆括号创建子表
subTable = personTable(1:2, {'Name', 'Age'})

% 逻辑索引
students = personTable(personTable.IsStudent,:)

逻辑索引非常像excel中的筛选功能,比如筛选身高超过1.8的人

添加和删除列

% 添加新列
personTable.Gender = categorical({'F'; 'M'; 'M'});
personTable.Weight = [65,70,75]';
% 计算并添加派生列
personTable.BMI = personTable.Weight ./ (personTable.Height.^2);
% 删除列
personTable.IsStudent=[]

派生列是通过已经存在的列计算得到新的列
在这里插入图片描述

排序和筛选

% 按年龄排序
sortedTable = sortrows(personTable, 'Age');
% 筛选特定条件的数据
tallPeople = personTable(personTable.Height > 1.80, :);

在这里插入图片描述

table与其它数据类型的转换

与数组和矩阵的转换

% table转换为矩阵(仅数值数据)
numericData = table2array(personTable(:, {'Age', 'Height'}));

% 矩阵转换为table
matrix = rand(5,3);
matrixTable = array2table(matrix, 'VariableNames', {'Var1', 'Var2', 'Var3'});

输出结果

numericData =
   25.0000    1.6800
   30.0000    1.8200
   35.0000    1.7500
   
matrixTable =
  5×3 table
     Var1        Var2       Var3  
    _______    ________    _______
    0.14189     0.65574    0.75774
    0.42176    0.035712    0.74313
    0.91574     0.84913    0.39223
    0.79221     0.93399    0.65548
    0.95949     0.67874    0.17119

总结

MATLAB中的table数据类型为处理表格数据提供了强大而灵活的工具。通过本文介绍的各种方法,你可以初步了解table的使用方法。

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

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

相关文章

Dropout 在大语言模型中的应用:以 GPT 和 BERT 为例

引言 大型语言模型(LLMs)如 GPT(生成式预训练 Transformer)和 BERT(双向编码器表示 Transformer)通过其强大的语言理解和生成能力,彻底改变了自然语言处理(NLP)领域。然…

gitLab 切换中文模式

点击【头像】--选择settings 选择【language】,选择中文,点击【保存】即可。

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

🎬 效果演示截图(先睹为快) ✨ 功能概览: ✅ 鼠标画任意形状多边形; ✏️ 点击“修改边界”可拖动顶点; 🟥 点击“遮罩”后地图除多边形区域外变红; ✂️ 点击“剪切”后仅显示选…

4.8.4 利用Spark SQL实现分组排行榜

在本次实战中,我们的目标是利用Spark SQL实现分组排行榜,特别是计算每个学生分数最高的前3个成绩。任务的原始数据由一组学生成绩组成,每个学生可能有多个成绩记录。我们首先将这些数据读入Spark DataFrame,然后按学生姓名分组&am…

【五子棋在线对战】一.前置知识的了解

前置知识的了解 前言1.Websocketpp1.1 使用Websocketpp的原因1.2 Websocket常用接口1.3 Websocket搭建服务器流程 2.JsonCpp2.1 Json 数据对象类的表示2.2序列化和反序列化的接口2.3 演示代码 3.Mysql![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/93305f423b544fc1…

历年中国科学技术大学计算机保研上机真题

2025中国科学技术大学计算机保研上机真题 2024中国科学技术大学计算机保研上机真题 2023中国科学技术大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school?classification1 拆分数字 题目描述 给定一个数字,拆分成若干个数字之和&#xff…

HackMyVM-Art

信息搜集 主机发现 ┌──(kali㉿kali)-[~] └─$ nmap -sn 192.168.43.0/24 Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-31 03:00 EDT Nmap scan report for 192.168.43.1 Host is up (0.0047s latency). MAC Address: C6:45:66:05:91:88 (Unknown) Nmap scan rep…

网页前端开发(基础进阶1)

颜色表示方法3种: 1.关键字: color:green; gray red yellow 2.rgb表示法:红,绿,蓝三原色。rgb(r,g,b),r表示红色,g表示绿…

如何找到一条适合自己企业的发展之路?

一个创业型的企业,开始就需要面向市场,通过自己的服务或产品,帮助用户解决问题,为客户创造价值,通过为客户创造的价值,出创造一定的的现金流,让企业存活下来! 企业的运营过程中&…

Vue-数据监听

数据监听 基础信息 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>数据监听</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js&qu…

当前用户的Git全局配置情况:git config --global --list

通过config命令可以查询当前用户的全局配置情况。这些配置项定义了 Git 在全局范围内的行为&#xff0c;包括如何处理大文件、SSL 证书验证以及提交时的用户信息。 git config --global --list http.sslVerifyfalse 这个配置项禁用了 SSL 证书验证。这在与自签名证书的 Git 服…

AI生态警报:MCP协议风险与应对指南(中)——MCP Server运行时安全​​

作为连接AI模型与外部工具的“USB-C接口”&#xff0c;MCP协议成为AI生态的核心枢纽&#xff0c;其安全风险已从理论威胁转化为实际攻击目标。 AI生态警报&#xff1a;MCP协议风险与应对指南&#xff08;上&#xff09;——架构与供应链风险https://blog.csdn.net/WangsuSecur…

day15 leetcode-hot100-29(链表8)

19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 1.暴力法 思路 &#xff08;1&#xff09;先获取链表的长度L &#xff08;2&#xff09;然后再次遍历链表到L-n的位置&#xff0c;直接让该指针的节点指向下下一个即可。 2.哈希表 思路 &#xff0…

MonitorSDK_性能监控(从Web Vital性能指标、PerformanceObserver API和具体代码实现)

性能监控 性能指标 在实现性能监控前&#xff0c;先了解Web Vitals涉及的常见的性能指标 Web Vitals 是由 Google 推出的网页用户体验衡量指标体系&#xff0c;旨在帮助开发者量化和优化网页在实际用户终端上的性能体验。Web Vitals 强调“以用户为中心”的度量&#xff0c;而不…

LeeCode 98. 验证二叉搜索树

给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 提示&#xff1a; 树中节…

JVM类加载高阶实战:从双亲委派到弹性架构的设计进化

前言 作为Java开发者&#xff0c;我们都知道JVM的类加载机制遵循"双亲委派"原则。但在实际开发中&#xff0c;特别是在金融支付、插件化架构等场景下&#xff0c;严格遵循这个原则反而会成为系统扩展的桎梏。本文将带你深入理解双亲委派机制的本质&#xff0c;并分享…

threejsPBR材质与纹理贴图

1. PBR材质简介 本节课没有具体的代码&#xff0c;就是给大家科普一下PBR材质&#xff0c;所谓PBR就是&#xff0c;基于物理的渲染(physically-based rendering)。 Three.js提供了两个PBR材质相关的APIMeshStandardMaterial和MeshPhysicalMaterial,MeshPhysicalMaterial是Mes…

深兰科技董事长陈海波受邀出席2025苏商高质量发展(常州)峰会,共话AI驱动产业升级

5月29日&#xff0c;2025苏商高质量发展峰会在常州隆重开幕。本次峰会聚焦新质生产力培育与产业创新转型&#xff0c;汇聚了众多江苏省内知名企业家、专家学者及政府代表。深兰科技创始人、董事长陈海波作为人工智能领域的领军企业代表&#xff0c;受邀出席盛会并参与重要活动环…

Git入门到精通:30分钟掌握核心技巧

目录 一、基础理论片 Git简介 Git安装 Git仓库 Git基本命令用法 仓库别名 二、实操命令篇 远程分支 分支的新建和合并 实操演示 1 本地新建仓库 2 gitee新建仓库 3 建立关系 4 新建分支 5 开发新功能 6 推送新分支 7 合并新分支到主分支 三、可视化工具篇 G…

Redis7底层数据结构解析

redisObject 在 Redis 的源码中&#xff0c;Redis 会将底层数据结构&#xff08;如 SDS、hash table、skiplist 等&#xff09;统一封装成一个对象&#xff0c;这个对象叫做 redisObject&#xff0c;也简称 robj。 typedef struct redisObject {unsigned type : 4; // 数…