How to deal with a nestled struct
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a xlm I wish to study. I used this code:
clc; clear all; close all
sampleXMLfile = 'A_AXIS_1.xml';
xDoc=parseXML(sampleXMLfile);
I need to manage data starting from line 87:
Browsing the struct i can find the data here
xDoc(2).Children(10).Children(2).Children(12).Attributes
Here i can find rec time, f1, f2 and f3 as Attributes.
How can i transfer them in a matrix so i can manipulate them?
6 个评论
Walter Roberson
2020-7-31
In the subset I show, there are three records in a row with no f1, so taking mean of two adjacent records would not be able to fill the gap.
There are places that have over 75 missing f1 in a row.
When a defective record is encountered, can the entire record be discarded, and everything calculated based on only the full records? Or should as much be recovered as possible (a slower more complicated process)?
采纳的回答
Walter Roberson
2020-7-31
sampleXMLfile = 'A_AXIS_1.xml';
S = fileread(sampleXMLfile);
just_numeric_cell = regexp(S, 'time="-?([\d.]+)" f1="-?([\d.]+)" f2="-?([\d.]+)" f3="-?([\d.]+)"', 'tokens');
just_numeric_array = vertcat(just_numeric_cell{:});
Attributes = str2double(just_numeric_array);
This finds about 6700 full records, with there being roughly another 2200 partial records in the file.
The largest time gap is about 0.07 seconds.
The order of columns is time, f1, f2, f3.
0 个评论
更多回答(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!