固定宽度文本文件的导入选项对象
一个固定宽度导入
对象使您能够指定如何MATLAB®从文本文件导入固定宽度表格数据。该对象包含控制数据导入过程的属性,包括处理错误和缺少数据。
您可以创建一个固定宽度导入
对象使用fixedWidthImportOptions
函数(此处描述)或检测端口选项
功能:
用fixedWidthImportOptions
根据您的导入需求定义导入属性。
用检测端口选项
根据中指定的固定宽度文本文件的内容检测并填充导入属性的步骤文件名
.
选择= detectImportOptions(文件名)
纽瓦
- - - - - -变量数量变量数,指定为正标量整数。
VariableNames
- - - - - -变量名变量名称,指定为字符向量或字符串数组的单元格数组。的VariableNames
属性包含在导入变量时要使用的名称。
如果数据包含N
变量,但没有指定变量名称,那么VariableNames
属性包含{‘Var1’,‘Var2’,……,“VarN”}
.
若要支万博1manbetx持无效的MATLAB标识符作为变量名,如变量名包含空格和非ascii字符,请设置variablenamingrule.
到“保存”
.
例子:opts.variablenames.
返回当前(检测到的)变量名。
例子:opts.VariableNames(3) ={“高度”}
将第三个变量的名称更改为高度
.
数据类型:字符
|一串
|细胞
variablenamingrule.
- - - - - -保留变量名的标志“修改”
(默认)|“保存”
标志以保留变量名,指定为逗号分隔对,由variablenamingrule.
,要么“修改”
或者“保存”
.
“修改”
-转换无效的变量名(由isvarname.
函数)的有效MATLAB标识符。
“保存”
-保留不是有效MATLAB标识符的变量名,例如包含空格和非ASCII字符的变量名。
从R2019B开始,变量名称和行名可以包含任何字符,包括空格和非ASCII字符。此外,它们可以从任何角色开始,而不仅仅是字母。变量和行名不必是有效的matlab标识符(由此确定)isvarname.
功能)。要保留这些变量名称和行名称,请设置值variablenamingrule.
到“保存”
.
数据类型:字符
|一串
VariableWidths
- - - - - -变量的字段宽度固定宽度文本文件中变量的字段宽度,指定为正整数值的向量。向量中的每个正整数对应于构成变量的字段中的字符数。的VariableWidths
属性中指定的每个变量都对应一个条目VariableNames
财产。
VariableTypes
- - - - - -数据类型的变量变量的数据类型,指定为字符向量的单元格数组或包含一组有效数据类型名称的字符串数组。的VariableTypes
属性指定导入变量时要使用的数据类型。
更新VariableTypes
属性,使用setvartype
函数。
例子:选择。VariableTypes
返回当前变量数据类型。
例子:选择= setvartype(选择“高度”,{“双重”})
更改变量的数据类型高度
到双
.
sedicentvariablenames.
- - - - - -导入的变量子集要导入的变量的子集,指定为字符向量、字符串标量、字符向量的单元格数组、字符串数组或数字索引数组。
sedicentvariablenames.
必须是中包含的名称的子集VariableNames
财产。默认情况下,sedicentvariablenames.
的所有变量名VariableNames
属性,这意味着导入所有变量。
使用sedicentvariablenames.
属性只进口感兴趣的变量。使用该变量的子集指定sedicentvariablenames.
财产和使用可阅读
只导入该子集。
若要支万博1manbetx持无效的MATLAB标识符作为变量名,如变量名包含空格和非ascii字符,请设置variablenamingrule.
到“保存”
.
例子:opts.SelectedVariableNames={'Height','LastName'}
只选择两个变量,高度
和姓氏
,用于导入操作。
例子:选择。SelectedVariableNames = [1 5]
仅为导入操作选择两个变量,第一个变量和第五个变量。
例子:T=可读性(文件名,选项)
属性中指定的变量返回一个表sedicentvariablenames.
财产的选择
目的。
数据类型:uint16
|uint32
|uint64
|字符
|一串
|细胞
VariableOptions
- - - - - -类型特定的变量导入选项键入特定的变量导入选项,作为变量导入选项对象数组返回。数组包含对应于指定的每个变量的对象VariableNames
财产。数组中的每个对象都包含支持导入具有特定数据类型的数据的属性。万博1manbetx
变量选项支持以下数据类型:数字、文万博1manbetx本、,逻辑
,约会时间
或分类
.
要查询变量的当前(或检测到的)选项,请使用格瓦罗普茨
函数。
要设置和自定义变量的选项,请使用setvaropts.
函数。
例子:opts.variableOptions.
返回一系列可变输入
对象,每个对象对应于数据中的每个变量。
例子:getvaropts(选择“高”)
返回可变输入
对象高度
变量
例子:选择= setvaropts(选择、“高度”、“FillValue”,0)
设置填充值
变量的属性高度
到0
.
数据线
- - - - - -数据位置数据位置,指定为正标量整数或n
通过-2
正标量整数数组。具体说明数据线
使用其中一种形式。
指定为 |
描述 |
---|---|
|
指定第一行它包含数据。使用以下命令指定值
|
|
指定线范围它包含数据。 数组中的值 |
|
具体说明多行范围阅读 有效的多行范围数组必须:
当指定多个行范围时,使用 |
例子:opts.DataLines=5
设置数据线
属性的值(5正)
.从一行开始读取所有行数据5
到文件尾。
例子:选择。DataLines = [2 6]
将属性设置为读取行2
通过6
.
例子:选择。DataLines = [1 3;5 6;8正)
设置要读取行的属性1
,2
,3.
,5
,6
,和所有的行之间8
,文件结束符。
数据类型:单一的
|双
|uint8
|uint16
|uint32
|uint64
RowNamesColumn
- - - - - -行名称位置0
(默认)|积极的标量整数行名称位置,指定为正标量整数。这个RowNamesColumn
属性指定包含行名称的列的位置。
如果RowNamesColumn
指定为0,则不会导入行名。否则,从指定的列导入行名称。
例子:opts.RowNamesColumn=2;
数据类型:单一的
|双
|uint8
|uint16
|uint32
|uint64
变化无常线
- - - - - -变量名称位置0
(默认)|积极的标量整数变量名位置,指定为正标量整数。的变化无常线
属性指定位于变量名称的行号。
如果变化无常线
指定为0,则不导入变量名。否则,请从指定行导入变量名。
例子:opts.VariableNamesLine=6;
数据类型:单一的
|双
|uint8
|uint16
|uint32
|uint64
VariableDescriptionsLine
- - - - - -变量描述位置0
(默认)|积极的标量整数变量描述位置,指定为正标量整数。这个VariableDescriptionsLine
属性指定变量描述所在的行号。
如果VariableDescriptionsLine
指定为0,则不导入变量说明。否则,请从指定行导入变量描述。
例子:选择。VariableDescriptionsLine = 7;
数据类型:单一的
|双
|uint8
|uint16
|uint32
|uint64
VariableUnitsLine
- - - - - -可变单位位置0
(默认)|积极的标量整数可变单元位置,指定为正标量整数。的VariableUnitsLine
属性指定变量单位所在的行号。
如果VariableUnitsLine
指定为0,则不导入变量单元。否则,从指定行导入变量单元。
例子:opts.varifeeUnitLine = 8;
数据类型:单一的
|双
|uint8
|uint16
|uint32
|uint64
空白
- - - - - -要视为空白的字符要作为空白处理的字符,指定为包含一个或多个字符的字符向量或字符串标量。
例子:“空白”、“_”
例子:“空白”、“? !”
排队
- - - - - -行尾字符{'\ n','\ r','\ r \ n'}
(默认)|特征向量|字符串标量|字符向量单元数组|字符串数组行尾字符,指定为字符向量、字符串标量、字符向量的单元格数组或字符串数组。
例子:“LineEnding”,“\n”
例子:“LineEnding”、“\ r \ n”
例子:LineEnding,{‘\ b’,‘:’}
数据类型:字符
|一串
|细胞
评论风格
- - - - - -评论风格评论的风格,指定为字符向量,字符串标量,字符向量或字符串数组。
例如,要忽略同一行百分号后面的文本,请指定评论风格
作为'%'
.
例子:'CommentStyle',{'/*'}
数据类型:字符
|一串
|细胞
编码
- - - - - -字符编码方案''
|“UTF-8”
|“系统”
|“iso - 8859 - 1”
|“windows-1251”
|“windows-1252”
| ...与文件关联的字符编码方案,指定为逗号分隔对,由“编码”
和“系统”
或标准字符编码方案名称。
当您未指定任何编码时,该函数使用自动字符集检测来确定读取文件时的编码。
例子:“编码”,“系统”
使用系统默认编码。
数据类型:字符
|一串
PartialFieldRule
- - - - - -处理部分字段的过程'保持'
|“填满”
|'奥马克'
|“省略变量”
|“包装”
|“错误”
过程要处理数据中的部分字段,指定为此表中的值之一。
部分字段规则 | 行为 |
---|---|
'保持' |
保留部分字段数据并将文本转换为适当的数据类型。 在某些情况下,当导入函数无法解释部分数据时,可能会发生转换错误。 |
“填满” |
的内容替换丢失的数据 的 |
'奥马克' |
省略包含部分数据的行。 |
“省略变量” |
省略包含部分数据的变量。 |
“包装” |
开始阅读下一行字符。 |
“错误” |
显示错误消息并中止导入操作。 |
例子:opts.partialfieldrule ='保持';
数据类型:字符
|一串
emplylinerule.
- - - - - -过程来处理空行“跳过”
|“读”
|“错误”
过程来处理数据中的空行,指定为“跳过”
,“读”
或“错误”
. 导入函数将空白解释为空。
空行规则 | 行为 |
---|---|
“跳过” |
跳过空行。 |
“读” |
导入空行。导入函数使用中指定的值解析空行VariableWidths ,VariableOptions ,丢失规则 以及其他相关性质,如空白 . |
“错误” |
显示错误消息并中止导入操作。 |
例子:选择。EmptyLineRule =“跳过”;
数据类型:字符
|一串
丢失规则
- - - - - -管理丢失数据的过程“填满”
(默认)|“错误”
|'奥马克'
|“省略变量”
程序管理缺失数据,指定为此表中的值之一。
失踪的规则 | 行为 |
---|---|
“填满” |
的内容替换丢失的数据 的 |
“错误” |
停止导入并显示显示缺失的记录和字段的错误消息。 |
'奥马克' |
忽略包含缺少数据的行。 |
“省略变量” |
省略包含丢失数据的变量。 |
例子:opts.MissingRule='ommitRow';
数据类型:字符
|一串
进口许可证
- - - - - -处理导入错误的过程“填满”
(默认)|“错误”
|'奥马克'
|“省略变量”
处理导入错误的过程,指定为此表中的一个值。
导入错误的规则 | 行为 |
---|---|
“填满” |
替换错误发生错误的数据 的 |
“错误” |
停止导入并显示一个错误消息,显示导致错误的记录和字段。 |
'奥马克' |
省略出现错误的行。 |
“省略变量” |
省略发生错误的变量。 |
例子:选择。ImportErrorRule =“omitvar”;
数据类型:字符
|一串
extracolumnsrule.
- - - - - -过程来处理额外的列'addvars'
|'忽略'
|“包装”
|“错误”
过程来处理数据中指定为该表中的一个值的额外列。
额外的列规则 | 行为 |
---|---|
'addvars' |
要导入额外的列,请创建新变量。如果有 注意:额外的列作为数据类型为的文本导入 |
'忽略' |
忽略额外的数据列。 |
“包装” |
将额外的数据列包装到新记录中。这个操作不会改变变量的数量。 |
“错误” |
显示错误消息并中止导入操作。 |
数据类型:字符
|一串
格瓦罗普茨 |
获取变量导入选项 |
setvaropts. |
设置变量导入选项 |
setvartype |
设置可变数据类型 |
预览 |
使用导入选项预览文件中的八行 |
检查固定宽度格式的文本文件,初始化导入选项对象,并使用该对象从文本文件导入表。
加载和预览固定宽度的文本文件
加载文件fixed_width_patients_subset_perfect.txt
并在文本编辑器中预览其内容。屏幕截图显示该文件包含固定宽度的格式化数据。
文件名=“fixed_width_patients_subset_perfect.txt”;
检查和提取固定宽度文件的属性
固定宽度的文本文件具有由起始位置、变量数量、变量名称和可变宽度组织的表格数据。捕获这些属性和变量所需的数据类型。
DataStartLine=2;NumVariables=7;变量名称={“姓”,“性别”,'年龄',“位置”,“高度”,...'重量',“抽烟”};变量宽度= [10,7,4,26,7,...7,7];datatype = {“字符”,“分类”,'双倍的',“字符”,'双倍的',...'双倍的',“逻辑”};
初始化和配置固定宽度导入
对象
初始化固定宽度导入
对象并配置其属性以匹配数据的属性fixed_width_patients_subset_perfect.txt
.
opts = fixedwidthimportoptions(“NumVariables”,多变量,...“数据线”,datastartline,...“变化无常”,variablenames,...“VariableWidths”VariableWidths,...“可变类型”、数据类型);
导入表
用可阅读
与之固定宽度导入
对象来导入表。
T=可读性(文件名,选项)
T=10×7表Lastname性别年龄位置位置高度减肥____________ ________ ______________________________________________________________ _ _ _ _ _ _ _ johnson'}男性43 {'va医院'} 69 163 false {'威廉姆斯“女性38 {St.Mary's Medical Center'} 64 131 False {'Brown'}女性49 {'郡普通医院'} 64 119 False {'Miller'}女性33 {'Va Hospital'} 64 142 True {'Wilson'}男40 {'VA医院'} 68 180 False {'Taylor'}女性31 {'县普通医院'} 66 132 False {'Thomas'}女性42 {St.玛丽的医疗中心'} 66 137 false {'jackson'}男性25 {'va医院'} 71 174 false {'clark'}女性48 {'va医院'} 65 133 false
定义导入选项对象从固定宽度格式的文本文件导入混乱数据。配置对象以处理混乱的数据,并使用它导入表。
加载和预览固定宽度的文本文件
加载文件fixed_width_patients_subset_messy.txt
并在文本编辑器中预览其内容。屏幕截图如下所示。屏幕截图显示该文件包含:
空行-第7、12和13行
额外的列 - 第8列
缺失数据–第1、4、9和11行
部分字段 - 最后3行
文件名=“fixed_width_patients_subset_messy.txt”;
检查并捕获固定宽度文件的属性
固定宽度文本文件具有按起始位置、变量数量、变量名称和变量宽度组织的表格数据。捕获这些属性以及要用于变量的数据类型。
DataStartLine=2;NumVariables=7;变量名称={“姓”,“性别”,'年龄',“位置”,“高度”,...'重量',“抽烟”};变量宽度= [10,7,4,26,7,...7,7];datatype = {“字符”,“分类”,'双倍的',“字符”,'双倍的',...'双倍的',“逻辑”};
初始化固定宽度导入
对象和设置变量属性
初始化固定宽度导入
对象,并配置其属性以匹配数据的属性。
opts = fixedwidthimportoptions(“NumVariables”,多变量,...“数据线”,datastartline,...“变化无常”,variablenames,...“VariableWidths”VariableWidths,...“可变类型”、数据类型);
设置EmptyLinesRule
,失踪的规则
, 和extracolumnsrule.
通过设置emplylinerule.
到“读”
. 接下来,通过设置丢失规则
到“填满”
.最后,要在导入过程中忽略额外的列,请设置extracolumnsrule.
到'忽略'
.有关属性及其值的更多信息,请参阅有关的文档固定宽度导入
.
选择。EmptyLineRule =“读”; 选择丢失规则=“填满”;选择。ExtraColumnsRule ='忽略';
设置PartialFieldRule
当导入函数在遍历整个可变宽度之前到达行尾字符时,就会出现部分字段。例如,在这个预览中,文件的最后三行fixed_width_patients_subset_messy.txt
.在这里,在最后一列的最后一行中,行结束字符出现在字段开始的两个位置之后,在到达3的完整可变宽度之前。
局部字段的出现有时可能表示错误。因此,请使用PartialFieldRule
来决定如何处理这些数据。要保留部分字段数据并将其转换为适当的数据类型,请设置PartialFieldRule
到'保持'
.有关的更多信息PartialFieldRule
,请参阅有关固定宽度导入
.
opts.partialfieldrule ='保持';
导入表
通过使用导入表可阅读
功能与功能固定宽度导入
对象并预览数据。
T=可读性(文件名,选项)
T=15×7表LastName性别年龄位置身高体重吸烟者 ____________ ___________ ___ _____________________________ ______ ______ ______ {' 史密斯的男性38}{县综合医院的}71 176真正的{“约翰逊”}男43 {VA医院的}69 163假{威廉姆斯的}女38{圣。玛丽的医学中心}南南假{“琼斯”}{VA医院的}67女133假{“棕色”}女49{县综合医院的}64 119假{0×0字符}<定义>南{0×0字符}南南男性40{“威尔逊”}{VA医院的}68 180男性28{{“摩尔”}的圣。玛丽的医学中心}南183假{“泰勒”}66年女31日{县综合医院的}132假{“安德森”}女45{县综合医院的}68南假{0×0字符}<定义>南{0×0字符}南南假{0×0字符}<定义>南{0×0字符}南南假{‘白’}男性39 {VA医院的}72 2假{哈里斯的}女性36{圣。Mary's Medical Center' 12 false ('Martin' s Male ' 48 {'VA Hospital'} 71 181 true
介绍于:
R2017a -固定宽度导入
对象
R2018b -fixedWidthImportOptions
功能
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。