大量のデータを含む一連の 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);
実際のデータのインポートは、ほとんどの場合、指定された範囲の Excel データに対応するマトリックスを返す関数importfile3
のラッパーによって実行されます。xlsread
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);