我想导入一系列包含大量数据的 excel 文件。我遇到的问题是我想一次处理每个文件中的数据并将其输出存储到一个变量中,但是每次我尝试处理不同的文件时,变量都会在变量工作区中被覆盖。无论如何我可以存储这些文件并一次处理每个文件吗?
numFiles = 1;
range = 'A2:Q21';
sheet = 1;
myData = cell(1,numFiles); % Importing data from Excel
for fileNum = 1:numFiles
fileName = sprintf('myfile%02d.xlsx',fileNum);
myData{fileNum} = importfile3(fileName,sheet,range);
end
data = cell2mat(myData);
实际的数据导入是由importfile3
它执行的,在大多数情况下,它是函数的包装器,该xlsread
函数返回与指定范围的 excel 数据相对应的矩阵。
function data = importfile3(workbookFile, sheetName, range)
% If no sheet is specified, read first sheet
if nargin == 1 || isempty(sheetName)
sheetName = 1;
end
% If no range is specified, read all data
if nargin <= 2 || isempty(range)
range = '';
end
%% Import the data
[~, ~, raw] = xlsread(workbookFile, sheetName, range);
%% Replace non-numeric cells with 0.0
R = cellfun(@(x) ~isnumeric(x) || isnan(x),raw); % Find non-numeric cells
raw(R) = {0.0}; % Replace non-numeric cells
%% Create output variable
data = cell2mat(raw);