matlab三种方法读取带文本内容的csv文件

csvread只能读取纯数值的csv文件。当csv文件中有字符串等其他类型的值时(如下图),只能跳过该行或该列(csvread的第2,3个参数是读取文件的指定行)。
图1
图1 chem_info.csv

不过,matlab的帮助中心现在已经不推荐使用这种方法读取csv文件了。其实有其他方法更好的读取CSV。
在这里插入图片描述

1. textscan

textscan
C = textscan(fileID,formatSpec)

将已打开的文本文件中的数据读取到元胞数组 C。该文本文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。完成文件读取后,请调用 fclose(fileID) 来关闭文件。

比如读取图1中的csv数据:

file_id = fopen('chem_info.csv');
C = textscan(file_id, '%s%d%f%d', 'Delimiter', ',', 'HeaderLines', 1 );
fclose(file_id);

上述代码中,textscan有4个参数:

  1. file_id :指用fopen打开文件并获取 的fileID 值
  2. ‘%s%d%f%d’:指匹配的格式。图1一共四列内容,分别是字符串、整型、浮点型、整型,所以对应’%s%d%f%d’。更多匹配格式请到官方帮助中心搜索关键字“数值字段”查看。
  3. Delimiter:指分割方式,csv文件以“,”分割
  4. HeaderLines:标题行数,默认为0。

返回结果

返回一个1×4的cell.
在这里插入图片描述
更多参数说明请查看textscan

2. readmatrix

readmatrix:

A = readmatrix(filename)

从文件中读取矩阵。
readmatrix 基于文件的扩展名确定文件格式:

  • txt、.dat 或 .csv(适用于带分隔符的文本文件)
  • xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)

我们用readmatrix读取图1中的csv数据:

A = readmatrix(’chem_info.csv‘, 'OutputType', 'string');

readmatrix第一个参数是文件名。第二个参数指输出类型。如果不带这个参数,那么字符串那一列的输出结果是Nan值:
在这里插入图片描述
加上之后,则全部输出文本类型,后面再把要作为数值型的内容转换数据类型。
在这里插入图片描述
更多参数说明请查看readmatrix

3. importdata

importdata:

从文件加载数据。

这个方法简单粗暴,还是读取chem_info.csv文件:

A = importdata(’chem_info.csv‘);

返回一个struct类型,默认将文本与数值分开:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更多参数说明请查看importdata

微信小程序提供了日期时间选择器组件`picker`和日历组件`calendar`,但如果需要自定义样式或者功能,可以考虑封装一个日期时间组件。 以下是一个简单的日期时间组件的封装示例: 1. 在`/components`目录下创建一个`datetime-picker`文件夹,创建`datetime-picker.wxml`、`datetime-picker.wxss`、`datetime-picker.js`和`datetime-picker.json`四个文件。 2. 在`datetime-picker.json`中定义组件的属性: ```json { "component": true, "usingComponents": {}, "properties": { "startDate": { "type": String, "value": "2023-02-15", }, "endDate": { "type": String, "value": "2023-02-20", }, "startTime": { "type": String, "value": "00:00", }, "endTime": { "type": String, "value": "23:59", }, "defaultDate": { "type": String, "value": "", }, "defaultTime": { "type": String, "value": "", }, "format": { "type": String, "value": "datetime", }, "showTime": { "type": Boolean, "value": true, }, "showDate": { "type": Boolean, "value": true, }, "startPlaceholder": { "type": String, "value": "开始时间", }, "endPlaceholder": { "type": String, "value": "结束时间", }, "bind:change": { "type": Function, "value": "", } }, "options": { "styleIsolation": "apply-shared" } } ``` 上述属性中: - `startDate`和`endDate`为日期范围,用于限制可选日期的范围; - `startTime`和`endTime`为时间范围,用于限制可选时间的范围; - `defaultDate`和`defaultTime`为默认值; - `format`为显示格式,支持`datetime`、`date`和`time`三种格式; - `showTime`和`showDate`分别控制是否显示时间和日期选择器; - `startPlaceholder`和`endPlaceholder`为开始时间和结束时间的占位符; - `bind:change`为选择器值变化时的回调函数。 3. 在`datetime-picker.wxml`中定义选择器组件: ```html <view class="datetime-picker"> <view wx:if="{{showDate}}" class="datetime-picker-item"> <picker mode="date" start="{{startDate}}" end="{{endDate}}" value="{{selectedDate}}" bindchange="onDateChange"> <view class="datetime-picker-value"> <text wx:if="{{selectedDate}}">{{selectedDate}}</text> <text wx:else>{{startPlaceholder}}</text> </view> </picker> </view> <view wx:if="{{showTime}}" class="datetime-picker-item"> <picker mode="time" start="{{startTime}}" end="{{endTime}}" value="{{selectedTime}}" bindchange="onTimeChange"> <view class="datetime-picker-value"> <text wx
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值