matlab如何导入excel:四种主流方案对比
matlab如何导入excel,优先用readtable读取带表头表格、readmatrix读取纯数值矩阵,xlsread在新版本中支持性偏弱,uiimport适合临时可视化导入;readtable输出表格类型,可直接调用列名,适合带文本、表头、混合数据的实验记录表,readmatrix只提取数字,自动跳过文本,适合批量数值运算,xlsread仅推荐R2019b及更早旧版本使用,uiimport不适合批量循环代码场景,你如果需要自动批量跑脚本,不要选交互式导入方式,单次查看、快速校验数据可以直接打开导入工具。
matlab如何导入excel:代码方案实操
readtable是当前版本推荐的主函数,基础写法T=readtable("data.xlsx"),文件放在当前脚本工作目录时只写文件名,文件在其他路径需要填写完整绝对路径,例如T=readtable("D:\data\test.xlsx"),你可以增加参数指定工作表,Sheet=2代表读取第二个工作表,Range="A2:C10"用来限定读取单元格区域,跳过第一行表头就设置ReadVariableNames=false。读取完成后,T.列名就可以单独调取这一列数据,文本和数字会自动区分存储,不需要额外转换。
readmatrix专门处理纯数值excel,语法M=readmatrix("data.xlsx"),返回结果是二维数值矩阵,矩阵无法保留表头文字,单元格内的文本内容会被识别为NaN,也就是非数值标记,这个特性适合传感器采集、仿真输出这类只有数字的表格,读取速度相比readtable更快,内存占用相对更低。
xlsread的完整写法是[num,txt,raw]=xlsread("data.xlsx"),num存放数值,txt存放文本,raw为原始混合单元格内容,MathWorks官方文档提示该函数后续版本会逐步移除,如果你是R2020a及以上版本,尽量替换成readmatrix或者readtable,避免后续升级matlab后代码报错。
matlab如何导入excel:交互式导入方式
uiimport打开可视化导入面板,命令行直接输入uiimport回车,弹窗里选中excel文件,之后可以手动勾选工作表、调整数据范围、设置表头,预览区实时查看导入效果,设置完成后生成对应代码或者直接导入到工作区变量。
这个方法上手门槛低,但不能嵌入循环脚本,每一次运行都需要手动操作。
| 函数 | 返回类型 | 适合数据 | 版本提示 |
|---|---|---|---|
| readtable | table表格 | 带表头、文本、混合数据 | R2019a及以后推荐 |
| readmatrix | 数值矩阵 | 纯数字数据 | R2019a及以后推荐 |
| xlsread | 矩阵、元胞数组 | 旧项目兼容 | 逐步不推荐 |
| uiimport | 自定义变量 | 单次手动导入调试 | 所有版本可用 |
路径错误是最高发问题。
excel文件处于打开状态时,部分windows系统会出现文件锁定,matlab读取失败,报错提示权限不足或者找不到文件,操作前关闭excel软件再运行代码可以大幅降低这类报错概率;文件名、文件夹路径不要使用中文、空格、特殊符号,中文路径在部分matlab配置环境下会触发读取异常,统一使用英文命名稳定性更好。
该方法的适用边界是,当excel存在合并单元格、图片、批注、复杂宏时,以上函数无法正常解析,合并单元格会填充NaN,这类特殊格式表格需要先在excel里拆分单元格、清理多余对象,导出成干净的基础数据表之后再导入matlab。
导入后校验可以用height(T)查看数据总行数,isnan(M)快速定位缺失数值位置,确认导入的数据行数、列数和excel源文件是否匹配,避免范围参数写错导致少读数据。
