How to extract specific elements from a struct variable?
5 views (last 30 days)
Show older comments
I'm using a piece of code wherein the output is saved as a "struct" variable as in the screenshot below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1472871/image.png)
Within this, the traces variable is arranged as shown below (looks like a cell array):
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1472876/image.png)
Now I need to select values based on the first column, i.e., anything over 5x11 (the first element has to be 5 or greater). Plus, each of these "nx11 table" itself is arranged like so:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1472881/image.png)
And eventually I just need to get the "row" and "col" columns from the tables which have (5+) x 11elements (that's the end goal). I got the code from somewhere to process my data and thus, don't know how to modify it to give output in a different way. But if someone could help me out, even partially, with these steps that would be great? I've attached the output along. Thanks!
0 Comments
Accepted Answer
Voss
on 4 Sep 2023
load trackResults2.mat
% idx is a logical vector, with one element for each row of trackRes.traces,
% which says whether the table in column 1 of that row of trackRes.traces
% has at least 5 rows:
idx = cellfun(@(x)size(x,1)>=5,trackRes.traces(:,1));
% from each of those tables (i.e., trackRes.traces(idx,1)), get the row and
% col columns:
result = cellfun(@(x)[x.row x.col],trackRes.traces(idx,1),'UniformOutput',false)
More Answers (0)
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!