Creating iddata from data in tables
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Bill Tubbs
am 22 Mär. 2020
Kommentiert: Bill Tubbs
am 27 Mär. 2020
I guess iddata won't accept data from a table.
>> dataTable(1:5,:)
ans =
5×5 table
Time H1 H2 T1 T2
____ __ __ _____ _____
0 0 0 21.23 21.23
1 0 0 21.55 21.55
2 0 0 21.55 21.55
3 0 0 21.87 21.55
4 0 0 21.55 21.23
>> dataSet = iddata(dataTable(:,4:5),dataTable(:,2:3));
Error using iddata (line 193)
The value of the "OutputData" property must be a double matrix or a cell array of such matrices.
Is this the only or best solution?
>> inputData = table2array(dataTable(:,2:3));
>> outputData = table2array(dataTable(:,4:5));
>> dataSet = iddata(outputData,inputData);
0 Kommentare
Akzeptierte Antwort
Sourabh Kondapaka
am 27 Mär. 2020
Hi,
Instead of indexing based on paranthesis “()” you can use curly braces “{}” to
extract the cell array within the table.
% Instead of :
inputData = table2array(dataTable(:,2:3));
outputData = table2array(dataTable(:,4:5));
dataSet = iddata(outputData,inputData);
% You can do something much simpler:
dataSet = iddata( dataTable{:,4:5}, dataTable{:,2:3} );
Here is a sample table which demonstrates the same thing as above:
t = table;
t.Time = (0:1:100)';
t.H1 = zeros(101,1);
t.H2 = zeros(101,1);
t.T1 = zeros(101, 1) + 23.25;
t.T2 = zeros(101, 1) + 21.53;
dataset = iddata(t{:,4:5}, t{:,2:3});
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Nonlinear ARX Models finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!