matlab如何导入多文本数据,将文本文件中的混合数据导入表

样本文件概述

样本文件 outages.csv 包含表示美国电力中断的数据。文件的前几行如下:

Region,OutageTime,Loss,Customers,RestorationTime,Cause

SouthWest,2002-01-20 11:49,672,2902379,2002-01-24 21:58,winter storm

SouthEast,2002-01-30 01:18,796,336436,2002-02-04 11:20,winter storm

SouthEast,2004-02-03 21:17,264.9,107083,2004-02-20 03:37,winter storm

West,2002-06-19 13:39,391.4,378990,2002-06-19 14:27,equipment fault

读取文本文件

使用 readtable 导入数据,并显示前五行。readtable 函数会自动检测分隔符和变量类型。

T = readtable('outages.csv');

head(T,5) % show first 5 rows of table

ans=5×6 table

Region OutageTime Loss Customers RestorationTime Cause

_____________ ________________ ______ __________ ________________ ___________________

{'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm' }

{'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm' }

{'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm' }

{'West' } 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 {'equipment fault'}

{'MidWest' } 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' }

在导入之前指定变量数据类型

根据文件中的变量类型,将变量数据类型更新为相应的 MATLAB 数据类型可能有益于数据。例如,outages.csv 中的第一列和第六列为分类列。通过将这两个列指定为 categorical 数组,您可以运用 MATLAB 函数处理分类数据。

要指定变量的数据类型,有如下方法可以选择:

指定 readtable 中的 Format 名称-值对组

设置文件导入选项的 VariableTypes 属性

使用 Format 名称-值对组指定变量的数据类型,读取数据,并显示前五行数据。在 formatSpec 设定符的 %{yyyy-MM-dd HH:mm}D 部分中,花括号之间的文本描述了日期和时间数据的格式。Format 中指定的值指定了:

文件中的第一列和最后一列为分类数据

第二列和第五列为格式化的日期和时间数据

第三列和第四列为浮点值

formatSpec = '%C%{yyyy-MM-dd HH:mm}D%f%f%{yyyy-MM-dd HH:mm}D%C';

T = readtable('outages.csv','Format',formatSpec);

head(T,5)

ans=5×6 table

Region OutageTime Loss Customers RestorationTime Cause

_________ ________________ ______ __________ ________________ _______________

SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm

SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm

SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm

West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault

MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm

或者,通过使用导入选项的 setvartype 函数,指定变量的数据类型。首先,为文件创建一个导入选项对象。数据文件包含了不同类型的变量。指定第一个和最后一个变量为 categorical 数组,第二个和第五个变量为 datetime 数组,剩余变量为 double。

opts = detectImportOptions('outages.csv');

varNames = opts.VariableNames ; % variable names

varTypes = {'categorical','datetime','double',...

'double','datetime','categorical'};

opts = setvartype(opts,varNames,varTypes);

将 readtable 与 opts 配合使用以导入数据,然后显示前五行。

T = readtable('outages.csv',opts);

head(T,5)

ans=5×6 table

Region OutageTime Loss Customers RestorationTime Cause

_________ ________________ ______ __________ ________________ _______________

SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm

SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm

SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm

West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault

MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm

将新变量追加到表中

表 T 中包含了 OutageTime 和 RestorationTime。计算每次电力中断的持续时间并将此数据追加到表中。

T.Duration = T.RestorationTime - T.OutageTime;

head(T,5)

ans=5×7 table

Region OutageTime Loss Customers RestorationTime Cause Duration

_________ ________________ ______ __________ ________________ _______________ _________

SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm 148:32:00

SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm NaN

SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm 226:59:00

West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault 00:26:00

MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm 65:05:00

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

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

相关文章

php 表单提交文件大小,PHP如何通过表单直接提交大文件详解

PHP如何通过表单直接提交大文件详解前言我想通过表单直接提交大文件,django 那边我就是这么干的。而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把文件内容都放到 php://input 里面。直…

wordpress url index.php,WordPress对URL的路由解析过程详解

本文说明WP 对URL rewrite并生成当前请求的过程. 实际内容并不复杂, 说的比较啰嗦啦…关于Query Vars这是Wordpress全部代码中最重要的变量,所谓的query vars是一系列变量集合. WP通过解析URL设定query vars, 并通过分析query vars值决定显示那些文章,设定标志位等.所谓标志位是…

matlab m文件的编写,Matlab实验报告(四)M文件的编写.doc

Matlab实验报告(四)M文件的编写.doc实验目的学习MATLAB屮的关系运算和逻辑运算,掌握它们的表达形式和川法。掌握MATLAB中的选择结构和循环结构。学会用MATLAB进行M文件的编写和调用。—、预备知识关系和逻辑运算关系运算符用来完成关系运算,在控制程序流…

php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)

一、定义中间件namespace app\middleware;class Check{public function handle($request, \Closure $next){if ($request->param(name) think) {return redirect(index/think);}return $next($request);}}中间件类可以随意命名,中间件的入口执行方法必须是handl…

刻意学习之道

所谓刻意学习,不是简单的指所谓的“一万小时定律”,而是要走出自己能力的舒适区,挑战自己的极限,向高人学习,从而得以让个人进步突飞猛进!

PHP Calendar 函数,wordpress函数get_calendar()用法示例

get_calendar( bool $initial true, bool $echo true )Display calendar with days that have posts as links.描述The calendar is cached, which will be retrieved, if it exists. If there are no posts for the month, then it will not be displayed.参数$initial(bool…

第三届蓝桥杯决赛真题---数量周期

【结果填空】(满分9分)复杂现象背后的推动力,可能是极其简单的原理。科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则。爱因斯坦的相对论是这方面的典范例证。很早的时候,生物学家观察某区域某种昆虫的数量(称为虫口数)之…

php asserttrue,PHP8.0的新特性:错误处理方面已经改进

1 系统函数引发TypeError和ValueError异常一.TypeError和ValueError改进作用#在PHP 8中,内部函数参数强制执行类型和值验证,如果不允许使用预期的类型或值,则将抛出TypeError或ValueError异常错误.#在PHP 8之前,这会导致PHP警告.1…

蓝桥杯第七届决赛之---阶乘位数

阶乘位数9的阶乘等于:362880它的二进制表示为:1011000100110000000这个数字共有19位。请你计算,9999 的阶乘的二进制表示一共有多少位? 思路总结: 根据平时做题规律得到如下规律:public class SwingDesign …

php 用户授权访问控制,用户权限访问控制功能

摘要&#xff1a;<?php namespace app\admins\controller;use think\Controller;use Util\SysDb;class Home extends Base{public function index(){&nbs<?php namespace app\admins\controller;use think\Controller;use Util\SysDb;class Home extends Base{publ…

蓝桥杯之--神秘三位数

有这样一个3位数&#xff0c;组成它的3个数字阶乘之和正好等于它本身。 即&#xff1a;abc a! b! c! 请找出所有满足要求的三位数.审好题很重要&#xff1a;三位数而非&#xff0c;三位数的个数 先写出一个函数求出某个数的阶乘&#xff0c;在跟别求出一个三位数的个十百位&…

生日快乐模板php,可会有人跟我说句生日快乐

一个人一年可以经历三百六十五次零点的跨越&#xff0c;可是真正有意义的却只有那么一次。从呱呱坠地到现在芳华正茂&#xff0c;今晚将是我要度过的第二十二个零点。从此以后&#xff0c;我便会进入到一个崭新的年龄&#xff0c;弱弱的问一句&#xff1a;可会有人跟我说句生日…

Java排序算法之--快速算法--快速上手

何为快速算法&#xff1a;它是冒泡排序的改进~ 基本思想是&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排序&#xff0c;整个排序过程可以…

php fetch返回false,Php fetch返回字符串而不是布爾值“true / false”值

Im using full calender and I have a few events that are all day events. Generally, my php set all allDay > false. Now that I noticed it adds a time on it if I do not specify a time.我正在使用完整的日歷,我有一些事件是全天活動。一般來說,我的php設置所有all…

排序算法值--堆排序

堆实际上是一棵完全二叉树&#xff0c;其任何一非叶节点满足性质&#xff1a;Key[i]<key[2i1]&&Key[i]<key[2i2]或者Key[i]>Key[2i1]&&key>key[2i2]即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。堆分为大顶堆和小顶堆&#x…

linux 彻底删除oracle,Linux下完美卸载Oracle

先说一下Linux 下Oracle没有卸载干净再安装会出现什么后果吧&#xff0c;在一次生产环境安装中&#xff0c;装Oracle时出现一个错误&#xff0c;倒致oracle没有安先说一下Linux 下Oracle没有卸载干净再安装会出现什么后果吧&#xff0c;在一次生产环境安装中&#xff0c;装Orac…

oracle用户密码复杂度查询,11gR2 Database用户密码复杂度验证

已选择6行。关于密码版本的问题&#xff1a;SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;USERNAME PASSWORD_VERSIONS------------------------------ -----------------JONES 10G 11GADAMS 10G 11GCLARK 10G 11GPRESTON 11GBLAKE 10GThe passwords for accounts jones,…

排序之--冒泡排序

冒泡排序&#xff1a;从大排到小&#xff1b;所谓冒泡&#xff0c;是指通过两两比较&#xff0c;将最大的数或者最小的数先冒出来。 例如数组&#xff1a;arr[] {53,48,80,98};arr[0]跟arr[1]比较&#xff0c;将大的放在arr[0]上&#xff0c;小的放在arr[1]上&#xff0c;通过…

oracle查询结果存入临时表,Oracle查询问题引发临时表使用

分析某段时间内&#xff0c;刷卡金额大于1000的卡的消费记录&#xff0c;写法如下。sql语句写法&#xff1a;select a.dno,a.dcard,a.dcard_money,a.dcard_type,a.ddate, a.dsubshop,a.dworker,a.dtype,j.Djf Dnowjf,b.dsje,B.Dcountfrom st_card_salemx a,( select m.dcard,Co…

排序之--选择排序

所谓选择排序&#xff0c;就是将数组中的最大值&#xff0c;或者最小值选出来。public class xuanze{public void maoPao(int []arr) {for(int i 0; i < arr.length-1;i) {int min i; //容易出错for(int j i1;j < arr.length;j) {// 这里也要区分冒…