加载结构中的excel文件
我正在开发一个小项目,需要大量的数据导入matlab进行进一步的处理。 我目前有15个excel文件,每个文件有8张。 我想要的是做一个父结构,我要加载每个Excel文件作为一个结构例如
parentstructure.filename.value{}
父母结构是主要结构,文件名是父母结构中的另一种结构的Excel文件,每个Excel文件在单元中有8张。
我已经写了一个小的代码读取数据到matlab中。 代码如下
srcdir = ''; %%% where all the files are placed srcfiles = dir(fullfile(srcdir, '*.xls')); for p = 1:numel(srcfiles) filename = fullfile(srcdir, srcfiles(p).name); [~,sheets] = xlsfinfo(srcfiles(p).name); for i = 1:8 Sheet = char(sheets(1,i)) ; value{p,i} = xlsread(filename,Sheet); end end
这段代码工作正常,并将数据加载到matlab中,但不是我想要的结构forms。 我尝试了其他几个组合和调整,但得到错误。 任何帮助或guuide将不胜感激。 谢谢
在你发布的代码中,你并没有真正创buildstruct
。 你用struct
关键字来做这个。 然后,为了将每个文件分配给文件filename
段,您需要使用genvarname
(或matlab.lang.makeValidName
)将文件名转换为有效的字段名,并将结构赋值给该字段。
% Initialize Parent Structure parentStructure = struct(); srcdir = ''; %%% where all the files are placed srcfiles = dir(fullfile(srcdir, '*.xls')); % Sort the files by numbers in their names numbers = regexp({srcfiles.name}, '\d+', 'match'); numbers = str2double(cat(1, numbers{:})); [~, sortind] = sort(numbers); srcfiles = srcfiles(sortind); for p = 1:numel(srcfiles) % Convert filename to a valid field name fieldname = matlab.lab.makeValidName(srcfiles(p).name); filename = fullfile(srcdir, srcfiles(p).name); [~,sheets] = xlsfinfo(filename); value = cell(1,8); for k = 1:8 Sheet = char(sheets(1,k)) ; value{k} = xlsread(filename,Sheet); end % Now assign this struct of sheets to your parentStructure parentStructure.(fieldname) = value; end
- 如何在Excel中从Microsoft SSAS获取Dimension Breadcrumb
- java.lang.NoClassDefFoundError:org / openxmlformats / schemas / spreadsheetml / x2006 / main / ctextensionlist in groovy
- VBA Excel在单元格中分隔date范围
- 为什么在Excel单元格中使用“= +”,何时可以使用“=”?
- 使用VBA从外部工作簿添加工作表
- UDF来连接值
- 如果列a = 0,则使用列b,如果列b = 0,则使用列c
- 从table2excel.js中提取后,删除Excel上的链接
- Excel与数据连接文件