修改导入数据命令功能

14次浏览(过去30天)
雷内·兰伯特
雷内·兰伯特 2021年2月21日
编辑: dpb 2021年2月21日
Matlab生成了以下代码,用于从Excel导入数据
函数Rohdaten37C = importfile1(workbookFile, sheetName, dataLines)
%IMPORTFILE1从电子表格中导入数据
% ROHDATEN37C = IMPORTFILE1(FILE)从第一个工作表读取数据
%在名为file的Microsoft Excel电子表格文件中。返回
%数值数据。
% ROHDATEN37C = IMPORTFILE1(文件,表)从指定的
%的工作表。
% ROHDATEN37C = IMPORTFILE1(FILE, SHEET, DATALINES)从
%指定的工作表中指定的行间隔。指定
% DATALINES作为正标量整数或n × 2的正数组
不连续行间隔的%标量整数。
%的例子:
% Rohdaten37C = importfile1("D:\ messreithe RL 3Hz 120us\Rohdaten37°C.xlsx", "Tabelle1", [2,13574]);
%参见READTABLE。
%由MATLAB在2021年2月21日14:03:36自动生成
%%输入处理
%如果没有指定工作表,读取第一个工作表
如果margin == 1 || isempty(sheetName)
sheetName = 1;
结束
%如果未指定行起始点和结束点,则定义默认值
如果<= 2
dataLines = [2,13574];
结束
%%设置“导入选项”并导入数据
opts = spreadsheetImportOptions(“NumVariables”9);
%指定工作表和范围
选择。Sheet = sheetName;
选择。DataRange =“一个”+ dataLines(1,1) +”:我+ dataLines(1,2);
%指定列名和类型
选择。变量名称= [“VarName1”“VarName2”“VarName3”“VarName4”“VarName5”“VarName6”“VarName7”“VarName8”“VarName9”];
选择。VariableTypes = [“替身”“替身”“替身”“替身”“替身”“替身”“替身”“替身”“替身”];
%导入数据
Rohdaten37C = readtable(workbookFile, opts,“UseExcel”、假);
idx = 2:size(dataLines, 1)
选择。DataRange =“一个”+ dataLines(idx, 1”:我+ dataLines(idx, 2);
tb = readtable(workbookFile, opts,“UseExcel”、假);
[Rohdaten37C;]结核病];% #好< AGROW >
结束
%%转换为输出类型
rohdaten37 = table2array(rohdaten37);
结束
问题是此代码具有预定义的列数(请参阅选项)。DataRange,选择。VariableNames,选择。变量类型和选项中的“9”。我想修改这段代码的方式,使这个函数能够读取任意数量的列,也许有一个额外的输入参数n,它给出了用户想要读取的各自Excel文件的列数。有可能完成这项任务吗?
谢谢
1评论
dpb
dpb 2021年2月21日
编辑:dpb 2021年2月21日
可以读取一般的Excel电子表格,但我绝不会从这段代码开始这样做……如果文件是常规的,只是大小不同,只需调用 readtable 直接;它可能不需要任何其他努力就能工作。
如果您希望数据在数组中而不是在表中,则调用 importdata 直接在每个文件上。

登录评论。

答案(0)

社区寻宝

在MATLAB Central中寻找宝藏,并了解社区如何帮助您!

开始狩猎!