主要内容

delimitedTextImportOptions

为分隔文本导入选项对象

描述

一个DelimitedTextImportOptions对象使您可以指定MATLAB如何®从带分隔符的文本文件导入表格数据。对象包含控制数据导入过程的属性,包括错误和缺失数据的处理。

创建

您可以创建DelimitedTextImportOptions对象使用detectImportOptions函数或delimitedTextImportOptions函数(此处描述):

  • 使用detectImportOptions中指定的带分隔符的文本文件的内容来检测和填充导入属性文件名

    opts = detectImportOptions(文件名);

  • 使用delimitedTextImportOptions根据导入需求定义导入属性。

描述

例子

opts = delimitedTextImportOptions创建一个DelimitedTextImportOptions对象,只有一个变量。

例子

opts = delimitedTextImportOptions('NumVariables',numVars中指定的变量数量创建对象numVars

例子

opts = delimitedTextImportOptions(___名称,值指定附加的属性DelimitedTextImportOptions使用一个或多个名称-值对参数。

输入参数

全部展开

变量数,指定为正标量整数。

属性

全部展开

变量的属性

变量名,指定为字符向量或字符串数组的单元格数组。的VariableNames属性包含导入变量时要使用的名称。

如果数据包含N变量,但未指定变量名,则VariableNames属性包含{‘Var1’,‘Var2’,……,“VarN”}

若要支金宝app持无效的MATLAB标识符作为变量名,例如包含空格和非ascii字符的变量名,请设置值为VariableNamingRule“保存”

例子:选择。VariableNames返回当前(检测到的)变量名。

例子:options . variablenames (3) = {'Height'}将第三个变量的名称更改为高度

数据类型:字符|字符串|细胞

标记以保留变量名,指定为任意一种“修改”“保存”

  • “修改”-转换无效的变量名(由isvarname函数)到有效的MATLAB标识符。

  • “保存”-保留不是有效MATLAB标识符的变量名,例如包含空格和非ascii字符的变量名。

从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,他们可以从任何字符开始,而不仅仅是字母。变量名和行名不必是有效的MATLAB标识符(由isvarname功能)。若要保留这些变量名和行名,请设置值VariableNamingRule“保存”.的值时,变量名不会刷新VariableNamingRule“修改”“保存”

数据类型:字符|字符串

变量的数据类型,指定为字符向量的单元格数组,或包含一组有效数据类型名称的字符串数组。的VariableTypes属性指定导入变量时要使用的数据类型。

要更新VariableTypes属性,使用setvartype函数。

例子:选择。VariableTypes返回当前变量数据类型。

例子:opts = setvartype(opts,'Height',{'double'})更改变量的数据类型高度

要导入的变量子集,指定为字符向量、字符串标量、字符向量的单元格数组、字符串数组或数值索引数组。

SelectedVariableNames中包含的名称的子集VariableNames财产。默认情况下,SelectedVariableNames属性中的所有变量名VariableNames属性,这意味着将导入所有变量。

使用SelectedVariableNames属性只导入感兴趣的变量。属性指定变量的子集SelectedVariableNames财产和用途readtable只导入该子集。

若要支金宝app持无效的MATLAB标识符作为变量名,例如包含空格和非ascii字符的变量名,请设置值为VariableNamingRule“保存”

例子:选择。SelectedVariableNames ={'身高','姓氏'}只选择两个变量,高度而且,用于导入操作。

例子:选择。SelectedVariableNames = [1 5]仅为导入操作选择两个变量,第一个变量和第五个变量。

例子:T = readtable(文件名,opts)方法中指定的变量SelectedVariableNames的属性选择对象。

数据类型:uint16|uint32|uint64|字符|字符串|细胞

类型特定的变量导入选项,作为变量导入选项对象数组返回。对象中指定的每个变量对应的对象VariableNames财产。数组中的每个对象都包含支持导入特定数据类型的数据的属性。金宝app

变量选项支持以下数据类型:数字、文金宝app本、逻辑datetime,或分类

要查询变量的当前(或检测到的)选项,请使用getvaropts函数。

要为变量设置和自定义选项,请使用setvaropts函数。

例子:选择。VariableOptions的集合。VariableImportOptions对象,一个对应于数据中的每个变量。

例子:getvaropts(选择“高”)返回VariableImportOptions对象的高度变量。

例子:opts = setvaropts(opts,'Height','FillValue',0)设置FillValue属性。高度0

位置属性

数据位置,指定为正标量整数或N -通过-2正标量整数数组。指定DataLines使用这些形式之一

指定为

描述

n

指定第一行其中包含数据。使用n的值。DataLines财产(n正).导入函数读取之间的所有行n还有文件的结尾。

n必须是大于零的正整数。

(n1 n2)

指定线范围其中包含数据。n1第一行包含数据和n2是包含数据的最后一行。

数组中的值(n1 n2)必须是非零正整数和n2必须大于n1

(n1 n2;n3陶瓷;……)

指定多行范围用英语阅读N -通过-2数组包含N不同的线范围。

由多个行范围组成的有效数组必须:

  • 按递增顺序指定行范围,即在数组中指定的第一行范围出现在文件中其他行范围之前。

  • 只包含不重叠的行范围。

当指定多个行范围时,使用仅当指定数组中最后一行范围的结束时。例如,[1 3;5 6;8正)

例子:选择。DataLines = 5设置DataLines属性的值(5正).从row开始读取所有数据行5到文件末尾。

例子:选择。数据线= [2 6]将属性设置为读取行2通过6

例子:选择。DataLines = [1 3;5 6;8正)将属性设置为读取行123.56,和之间的所有行8,和文件结束。

数据类型:||uint8|uint16|uint32|uint64

行名位置,指定为正标量整数。的RowNamesColumn属性指定包含行名的列的位置。

如果RowNamesColumn指定为0,则不导入行名。否则,从指定的列导入行名。

例子:选择。RowNamesColumn = 2;

数据类型:||uint8|uint16|uint32|uint64

变量名称位置,指定为正标量整数。的VariableNamesLine属性指定变量名所在的行号。

如果VariableNamesLine指定为0,则不导入变量名。否则,从指定的行中导入变量名。

例子:选择。VariableNamesLine = 6;

数据类型:||uint8|uint16|uint32|uint64

变量描述位置,指定为正标量整数。的VariableDescriptionsLine属性指定变量描述所在的行号。

如果VariableDescriptionsLine指定为0,则不导入变量描述。否则,从指定的行导入变量描述。

例子:选择。VariableDescriptionsLine = 7;

数据类型:||uint8|uint16|uint32|uint64

变量单位位置,指定为正标量整数。的VariableUnitsLine属性指定变量单元所在的行号。

如果VariableUnitsLine指定为0时,则不导入变量单位。否则,从指定的行中导入变量单元。

例子:选择。VariableUnitsLine = 8;

数据类型:||uint8|uint16|uint32|uint64

分隔文本属性

分隔文本文件中的字段分隔符字符,指定为字符向量、字符串标量、字符向量的单元格数组或字符串数组。

例子:“分隔符”,“|”

例子:“分隔符 ',{';','*'}

数据类型:字符|字符串|细胞

要作为空白处理的字符,指定为包含一个或多个字符的字符向量或字符串标量。

例子:“空白”、“_”

例子:“空白”、“? !”

行尾字符,指定为字符向量、字符串标量、字符向量的单元格数组或字符串数组。

例子:' LineEnding ', ' \ n '

例子:“LineEnding”、“\ r \ n”

例子:LineEnding,{‘\ b’,‘:’}

数据类型:字符|字符串|细胞

注释的样式,指定为字符向量、字符串标量、字符向量的单元格数组或字符串数组。

例如,要忽略同一行上百分号后面的文本,请指定CommentStyle作为“%”

例子:CommentStyle,{“/ *”}

数据类型:字符|字符串|细胞

过程处理分隔文本文件中的连续分隔符,该分隔符指定为本表中的值之一。

连续分隔符规则 行为
“分裂” 将连续的分隔符拆分为多个字段。
“加入” 将分隔符合并为一个分隔符。
“错误” 返回错误并中止导入操作。

数据类型:字符|字符串

过程来管理分隔文本文件中的前导分隔符,该分隔符作为本表中的值之一指定。

前导分隔符规则 行为
“保持” 保留分隔符。
“忽略” 忽略分隔符。
“错误” 返回错误并中止导入操作。

过程来管理带分隔符的文本文件中的尾随分隔符,该分隔符作为本表中的值之一指定。

前导分隔符规则 行为
“保持” 保留分隔符。
“忽略” 忽略分隔符。
“错误” 返回错误并中止导入操作。

与文件关联的字符编码方案,指定为逗号分隔的对,由“编码”而且“系统”或标准字符编码方案名称。

如果未指定任何编码,则该函数在读取文件时使用自动字符集检测来确定编码。

例子:“编码”、“系统”使用系统默认编码。

数据类型:字符|字符串

替换规则

过程来管理缺失的数据,该数据指定为本表中的值之一。

失踪的规则 行为
“填满”

的内容替换缺失的数据FillValue财产。

FillValue属性中指定VariableImportOptions正在导入的变量的。有关访问的详细信息FillValue财产,看到getvaropts

“错误” 停止导入并显示错误消息,显示丢失的记录和字段。
“omitrow” 省略包含缺失数据的行。
“omitvar” 省略包含缺失数据的变量。

例子:选择。MissingRule = 'omitrow';

数据类型:字符|字符串

过程来处理数据中的空行,指定为“跳过”“读”,或“错误”.导入函数将空白解释为空。

空行规则 行为
“跳过” 跳过空行。
“读” 导入空行。导入函数使用中指定的值解析空行VariableWidthsVariableOptionsMissingRule,以及其他相关属性,例如空格
“错误” 显示错误消息并中止导入操作。

例子:选择。EmptyLineRule = '跳过';

数据类型:字符|字符串

过程来处理导入错误,该错误指定为本表中的值之一。

导入错误规则 行为
“填满”

类的内容替换发生错误的数据FillValue财产。

FillValue属性中指定VariableImportOptions正在导入的变量的。有关访问的详细信息FillValue财产,看到getvaropts

“错误” 停止导入并显示错误消息,显示导致错误的记录和字段。
“omitrow” 省略发生错误的行。
“omitvar” 省略发生错误的变量。

例子:选择。ImportErrorRule = 'omitvar';

数据类型:字符|字符串

过程处理数据中的额外列,这些列指定为本表中的值之一。

额外列规则 行为
“addvars”

要导入额外的列,请创建新变量。如果有N额外列,然后导入新变量为“ExtraVar1”、“ExtraVar2’,……、“ExtraVarN”.额外的数据列被导入,就像它们的VariableTypes字符

“忽略” 忽略额外的数据列。
“包装” 将额外的数据列包装到新记录中。这个操作不会改变变量的数量。
“错误” 显示错误消息并中止导入操作。

数据类型:字符|字符串

对象的功能

getvaropts 获取变量导入选项
setvaropts 设置变量导入选项
setvartype 设置可变数据类型
预览 使用导入选项预览文件中的八行

例子

全部折叠

定义一个用于读取多个变量的导入选项对象patients.dat

根据文件的内容,定义这些变量属性:名称、类型、分隔符、数据起始位置和额外列规则。

varNames = {“姓”“性别”“年龄”“位置”“高度”“重量”“抽烟”};varTypes = {“字符”“分类”“int32”“字符”“双”“双”“逻辑”};分隔符=',';dataStartLine = 2;extraColRule =“忽略”

使用delimitedTextImportOptions函数和变量信息初始化导入选项对象选择

opts = delimitedTextImportOptions(“VariableNames”varNames,...“VariableTypes”varTypes,...“分隔符”分隔符,...“DataLines”dataStartLine,...“ExtraColumnsRule”, extraColRule);

使用预览函数使用import options对象预览数据。

预览(“patients.dat”选择)
ans =8×7表LastName性别年龄位置身高体重吸烟者  ____________ ______ ___ _____________________________ ______ ______ ______ {' 史密斯的男性38}{县综合医院的}71 176假{“约翰逊”}男43 {VA医院的}69 163假{威廉姆斯的}女38{圣。玛丽医疗中心64 131假{'琼斯'}女40{'弗吉尼亚医院'}67 133假{'布朗'}女49{'县总医院'}64 119假{'戴维斯'}女46{'圣。玛丽医疗中心68 142错误{'Miller'}女33 {'VA医院'}64 142错误{'Wilson'}男40 {'VA医院'}68 180错误

使用以下命令导入数据readtable

T =可读的(“patients.dat”、选择);谁T
名称大小字节类属性T 100x7 30563表

提示

  • 介绍:

    • R2016b -DelimitedTextImportOptions对象

    • R2018b -delimitedTextImportOptions函数