How to extract specific elements from a struct variable?
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Voss
2023-9-4
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)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!