MATLAB: How to make a list of iddata objects

cell arraysiddata

I'm loading data from a bunch of csv files and making each one into a iddata object.
How do I create a collection from the resulting iddata objects?
I thought cell arrays were the way to go (as described here) but I'm getting a criptic error
Code snippet:
% Store data sets in this cell array
dataSets = {};
% Loop through files
for k = 1 : length(theFiles)
file = theFiles{1, k};
fprintf(1, "Reading file '%s'\n", file.name);
filePath = fullfile(file.folder, file.name);
% Read data from file
dataTable = readtable(filePath);
% Create dataset object for system identification
inputData = table2array(dataTable(:,2:3));
outputData = table2array(dataTable(:,4:5));
dataSet = iddata(outputData,inputData);
dataSets = [dataSets, dataSet];
end
The line
dataSets = [dataSets, dataSet];
generates this error message:
Undefined function 'realdata' for input arguments of type 'cell'.
Error in iddata/horzcat (line 19)
reald = realdata(dat);

Best Answer

Here is a solution. Use the index to assign to the cell array:
% Loop through files
for k = 1 : length(theFiles)
file = theFiles{1, k};
fprintf(1, "Reading file '%s'\n", file.name);
filePath = fullfile(file.folder, file.name);
% Read data from file
dataTable = readtable(filePath);
% Create dataset object for system identification
inputData = table2array(dataTable(:,2:3));
outputData = table2array(dataTable(:,4:5));
dataSet = iddata(outputData,inputData);
dataSets{k} = dataSet;
end