matlabversionsystem-identification

Multiexperiments in iddata function from Matlab's system ID toolbox


I am trying to evaluate with iddata (INFO) in matlab, a number of N_E experiments. I already computed and have as cell arrays of size 1xN_E the outputs and inputs, y and u respectively. Every entry of the cell arrays y and u is a vector of length N=316 (SISO system). For the sake of correctness, period is also a cell array of size 1xN_E, with the period in every entry.

Using the command:

data = iddata(y,u,period);

doesn't produce the expected averaged data-set. Instead, it is handled as a 361x361MIMO system (!).

I've already tried transposing, without results.

data = iddata(y.',u.',period.');

Does someone know why this happens, and how can I produce the desired multi-experiment data-set?

P.S. the documentation I read is for Matlab R2014b, and I am running R2013b. Does someone know if this was not supported in my edition? Or how can I find out?


Solution

  • Actually, the Matlab documentation provides an answer to my question. The function iddata is very strict regarding how the dimension of output y, input u and period period are defined.

    Defining 1xN_experiments cell arrays for y,u and period (note: same size for all!; also N_experimentsx1 won't be recognized by iddata) and then using iddata:

    data = iddata(y,u,period);
    

    gives the desired iddata structure.

    Note all vectors within y and u must be of same length(!)