How do I extract data from a structure and put them all in one single array?
이전 댓글 표시
I have a 1X31 struct with two fields, I would like to extract all the data from the second one, and put them all in one single array.
How can I do that?
Here are some images to illustrate how they are arranged.

So what I want to do is to create an array that contains dataTT(1).Data + dataTT(2).Data + ... dataTT(n).Data
채택된 답변
추가 답변 (1개)
Image Analyst
2023년 4월 12일
편집: Image Analyst
2023년 4월 12일
You forgot to attach your data in a .mat file with the paperclip icon so we can't try it with your data. You can try these things:
v = {dataTT.Topic}
or
v = vertcat(dataTT.Topic)
Same for the Data field
댓글 수: 2
Luis Ricardo Rivera Goitia
2023년 4월 12일
Image Analyst
2023년 4월 12일
You're welcome. Just additional info to extend this into future situations you might encounter: If the numbers were single numbers, not cell arrays of 3 numbers then you could do
v = [structName.fieldName] % Concatenate all fields into a single vector.
For a real world example, where mask is a binary image with several "blobs" that you want to measure the area of:
props = regionprops(mask, 'Area'); % Returns a structure with "Area" as a field of the structure.
allAreas = [props.Area]; % Concatenate all areas into a single double vector.
I use it that way all the time.
If my replies helped you, perhaps you could click the "Vote" icon. 🙂
카테고리
도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!