How do I simplify importing .xls files within a for loop?
1 次查看(过去 30 天)
显示 更早的评论
Thanks for any assistance in advance! I have the following problem: I have generated spreadsheets of data (.xls file for each baseball team).
I want to import one xls file, do some calculations, and then move on to the next team's xls file...so on and so on..
However, the way I designed my for loop, a window pops up where I have to manually select each individual .xls file I wish to be imported.
I would like to know: how can i automate this process? What code do I need so that the program itself will know exactly which xls file to import within the for loop without me needed to manually select it each time?.
Here is my code:
for Str = {'Diamondbacks' 'Braves' 'Orioles' 'Boston' 'Cubs' 'WhiteSox' 'Reds' 'Indians' 'Rockies' 'Tigers' 'Astros' 'Royals' 'Angels' 'Dodgers' 'Marlins' 'Brewers' 'Twins' 'Mets' 'Yankees' 'Athletics' 'Phillies' 'Pirates' 'Padres' 'Giants' 'Mariners' 'Cardinals' 'Rays' 'Rangers' 'BlueJays' 'Nationals'};
[fileToRead1, folder] = uigetfile();
AngelsData.xls = fullfile(folder, fileToRead1);
% Call the first function.
importhome(AngelsData.xls)
%IMPORTFILE(FILETOREAD1)
% Imports data from the specified file
% FILETOREAD1: file to read
% Auto-generated by MATLAB on 05-May-2012 23:12:52
% Import the file
sheetName='Sheet1';
[numbers, strings, raw] = xlsread(fileToRead1, sheetName);
if ~isempty(numbers)
newData1.data = numbers;
end
if ~isempty(strings) && ~isempty(numbers)
[strRows, strCols] = size(strings);
[numRows, numCols] = size(numbers);
likelyRow = size(raw,1) - numRows;
% Break the data up into a new structure with one field per column.
if strCols == numCols && likelyRow > 0 && strRows >= likelyRow
newData1.colheaders = strings(likelyRow, :);
end
end
2 个评论
采纳的回答
Walter Roberson
2012-12-13
Replace
[fileToRead1, folder] = uigetfile();
with
folder = '';
fileToRead1 = [Str '.xls'];
Note: I would suggest that "AngelsData.xls" is a confusing name for a variable. It looks too much like a file name. It is a valid variable name, though, meaning "the field named 'xls' in the structure named 'AngelsData'"
3 个评论
Walter Roberson
2012-12-13
I didn't say to remove the line
AngelsData.xls = fullfile(folder, fileToRead1);
Not that it is needed, really. What should be done is to remove it and to use
importhome(filetoRead1);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!