将表格数据导入matlab的方法:
由matlab内部功能导入:
- 首先:
点击主页,找到导入数据选项
- 然后:
- 选择要导入的数据表格,如果找不到可以选择一下文件格式分类,但是可能有些数据表格不支持,但是正常的Exel表格这些应该都没问题
- 接着:
- 选择后,会出现一个窗口,可以用来选择你所需要导入的表格数据
- 最后:
- 导入后,系统会默认一个变量来接收,点击即可查看里面存放的数据
由Matlab内部函数导入:
- 首先:
代码的内容如下:
opts = detectImportOptions('D:\Matlab_project\test\附件1:123家有信贷记录企业的相关数据.xlsx');
opts.Sheet = '进项发票信息';
opts.VariableNamingRule = 'preserve';
date_txt1 = readtable('D:\Matlab_project\test\附件1:123家有信贷记录企业的相关数据.xlsx', opts);
- 上述代码中,我们首先使用
detectImportOptions
函数来检测导入选项,然后设置工作表的名称和变量命名规则,并将这些选项传递给readtable
函数。 - 运行后:
- 这时候用于接受表格数据的变量是由你自己定义的,好处是以上代码将导入前的工作都做好了,问题出现时也方便查找问题出处便于修改
detectImportOptions函数
- detectImportOptions函数 是MATLAB中用于自动检测数据导入选项的功能。它的主要作用是帮助你确定如何正确导入外部数据文件,如CSV、Excel、文本文件等。以下 是
detectImportOptions
函数的用法和作用:
用法示例:
opts = detectImportOptions('filename.ext');%括号里是文件的地址
作用:
-
自动检测指定文件中的数据格式和结构,例如列分隔符、列名、数据类型等。
-
返回一个包含导入选项的结构体(通常命名为
opts
),其中包括了有关数据文件的信息。 -
这些选项可以进一步用于
readtable
、readmatrix
等函数,以确保正确导入文件的数据。 -
通过自动检测数据文件的特性,你可以避免手动指定导入选项,减少出错的可能性。
例如,我们使用了detectImportOptions
函数来获取Excel文件的导入选项,然后将这些选项传递给readtable
函数,以确保正确读取Excel文件中的数据。
-
总之:
detectImportOptions
函数是一个非常有用的工具,可以简化从外部数据文件中导入数据时的配置过程,提高数据导入的准确性。 -
可以在以下情况下考虑使用
detectImportOptions
函数:
1. 外部数据文件的结构不确定:当你需要从外部数据文件(如CSV、Excel、文本文件)导入数据时,但不确定文件的结构,例如列名、数据类型或分隔符时,可以使用detectImportOptions
来自动识别这些信息。
2. 数据文件结构经常变化:如果你处理的数据文件的结构经常发生变化,或者你需要处理多个不同结构的文件,可以编写一个通用的数据导入脚本,使用detectImportOptions
自动适应不同的文件结构。
3. 避免手动配置导入选项:手动配置导入选项可能会出现错误,特别是当你处理大量文件时。使用detectImportOptions
可以减少配置错误的可能性,提高代码的可维护性。
4. 快速探索数据:如果你想快速查看数据文件的内容和结构,而不必提前了解文件的详细信息, detectImportOptions
可以帮助你快速获取必要的信息。
- 总之:
detectImportOptions
是一个在处理外部数据文件时非常有用的工具,特别是当你需要自动识别文件的结构和特性时,它可以简化数据导入的流程,并提高代码的灵活性和鲁棒性 (鲁棒性是指某一个自动系统在系统发生故障时仍然能较好的完成预定工作的能力)。
opts.VariableNamingRule = 'preserve'
opts.VariableNamingRule = 'preserve'
这句话的作用是告诉 MATLAB 在导入数据时要保持变量名的原始命名,即不要修改列名的格式或字符,保留列名中的任何空格、特殊字符或大小写。这在数据导入和处理过程中非常重要,因为有些数据文件的列名可能包含空格、特殊字符或区分大小写,如果不设置这个选项,MATLAB 可能会自动修改这些列名以适应其默认的变量命名规则。
更改要导入的表格:
- 要更改导入的 Excel 表格(Sheet),你可以通过修改
opts.Sheet
的值来指定要导入的特定 Sheet 名称或索引。下面是示例代码:
opts = detectImportOptions('D:\Matlab_project\test\附件1:123家有信贷记录企业的相关数据.xlsx');
opts.Sheet = 'YourSheetName'; % 替换 'YourSheetName' 为你要导入的 Sheet 名称
date_txt1 = readtable('D:\Matlab_project\test\附件1:123家有信贷记录企业的相关数据.xlsx', opts);
- 在上面的示例中,将
opts.Sheet
的值设置为你要导入的 Excel 表格的名称(字符串),然后再使用readtable
函数导入数据时,它将导入指定的 Sheet。
如果你知道 Sheet 的索引而不是名称,也可以将opts.Sheet
设置为索引值,例如opts.Sheet = 2;
,这将导入第二个 Sheet。
所以,根据你需要导入的具体 Sheet,你可以相应地更改opts.Sheet
的值。
例如:我将要导入的表格改为销项发票信息
则代码更改为:
opts = detectImportOptions('D:\Matlab_project\test\附件1:123家有信贷记录企业的相关数据.xlsx');
opts.Sheet = '销项发票信息';
opts.VariableNamingRule = 'preserve';
date_txt1 = readtable('D:\Matlab_project\test\附件1:123家有信贷记录企业的相关数据.xlsx', opts);
我只是将opts.sheet由进项发票信息更改为销项发票信息 , 运行后: date_txt1的内容就变为销项发票信息表格的数据
导入后数值变为NaN(Not a Number):
-
数据文件中包含缺失值: 最常见的情况是,Excel 或其他数据文件中的某些单元格本来就包含了缺失值或空白数据。这会导致这些位置的数据在导入时被解释为 NaN。
-
数据类型不匹配: 如果 Excel 表格中的列包含不同的数据类型(例如文本和数值),则在导入时会将其中一个数据类型解释为 NaN。
-
导入选项设置不当: 如果导入选项(如数据范围、Sheet 名称等)设置不正确,可能会导致数据无法正确解析,从而变成 NaN。
为了解决这个问题,你可以采取以下措施:
-
检查数据文件: 打开 Excel 文件,确保数据文件中的数据是正确的,没有缺失值或意外的数据格式问题。
-
检查数据类型: 确保 Excel 表格中的列都包含一致的数据类型。你可以在 MATLAB 中查看列的数据类型,以确保它们与你的预期相符。
-
调整导入选项: 使用
detectImportOptions
函数检测导入选项,确保它们正确匹配了 Excel 文件的结构。你可以手动设置选项以确保正确导入。 -
数据清理: 如果有缺失值或不匹配的数据类型,你可以在 MATLAB 中进行数据清理,根据需要填充缺失值或转换数据类型。