MATLAB: How to create datastore class interactively

datadata importdatastorespreadsheet

I have a folder of spreadsheet files containing three subfolders. I am using datastore to read the data from the spreadsheets.
I need to get the data from each of the subfolders individually and store them as ds1,ds2,ds3 for subfolder1,2 and 3 respectively.
I am doing the following:
for k = 1:3
ds = datastore('subfolder%d.xls',k)
end
I get the following errors:
Error in datastore:
Expected a string for the parameter name, instead the input type was 'double'.
Error in datastore>parseFileBasedNVPairs
parse(inpP, varargin{:});
Error in datastore
fileBasedNV = parseFileBasedNVPairs(varargin{:});
I am able to understand the origin of first error, but then I cannot find any way to resolve it.

Best Answer

You're missing an sprintf call. You should probably also store your datastore objects in a cell array (or perhaps a regular array of datastore objects; I'm not certain off the top of my head if that's allowed.)
ds{k} = datastore(sprintf('subfolder%d.xls',k))