Converting iddata to a double
15 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
回答(4 个)
Jarrod Rivituso
2011-4-29
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.
0 个评论
Julian Antolin
2017-4-13
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 个评论
Ill ch
2019-10-23
Hi Julian,
Is it possible to convert it in cellstr . i am trying it but getting error.
cellstr(num2str(data.y(:,1)))];
zahra jfr
2017-3-12
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!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Preprocess Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!