MATLAB Answers

Converting iddata to a double

54 views (last 30 days)
Nick
Nick on 29 Apr 2011
Answered: Koke Yao on 24 Feb 2020
I have a data set from an experiment that I have converted to an iddata object to simplify filtering. However, after filtering the data, I would like to perform algorithms that would normally be performed on vector data. I cannot find a way to do these processes to the iddata object, so I would like to convert back to a vector. I have found no way to convert these data back to a vector format to manipulate it. Is this possible to do in Matlab? Or would it be easier to filter the data in the vector format initially?

Answers (4)

Jarrod Rivituso
Jarrod Rivituso on 29 Apr 2011
Is this what you mean?
%Create fake data
u = (0:0.01:2*pi)';
y = sin(u) + 0.1*randn(size(u));
%Create iddata object
data = iddata(y,u,0.01);
%Filter iddata object
dataFilt = idfilt(data,{[1/3 1/3 1/3],[1]})
%Get new data back
uNew = dataFilt.u;
yNew = dataFilt.y;
As for other ways to filter, there are many. Check out demos for the Signal Processing Toolbox, or the basic MATLAB filter function.

Julian Antolin
Julian Antolin on 13 Apr 2017
Note: This question was asked a long time ago and you surely have figured out what you need to do. However, I will post my reply just in case it's helpful to somebody else.
I had the same question as you. Looking through search results, I came across a Mathworks site that answered it for me.
If, say, you have a 2 channel signal in an iddata structure, you can access the output channels by: y1 = data.y(:,1); y2 = data.y(:,2);
Now y1 and y2 are regular double arrays.
Julian
  1 Comment
Ill ch
Ill ch on 23 Oct 2019
Hi Julian,
Is it possible to convert it in cellstr . i am trying it but getting error.
cellstr(num2str(data.y(:,1)))];

Sign in to comment.


zahra jfr
zahra jfr on 12 Mar 2017
dear Nick you can type data.y or data.u in command window in order to see output or input of the data,respectively. best regards!

Koke Yao
Koke Yao on 24 Feb 2020
vector = get( iddata, 'outputData' )

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!