How to filter required data
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I have below table. I want to take the data under "actual measurement" till stop, but in between there should not exist except complete or paused or stop. for example I want the below cases:
actual measurement start 2016/4/5
complete BA0K2 23
complete BY0P2 3
stop HYT0KL 54
AND
actual measurement start 2016/4/7
paused VA0L2 89
paused BY0P2 3
stop HYT0KL 54
But I dont want:
measurement restart start 2016/4/7
complete VA0L2 89
paused BY0P2 3
stop HYT0KL 54
AND
actual measurement start 2016/4/7
actual measurement restart start 2016/4/7
paused VA0L2 89
stop HYT0KL 54
My Table:
actual measurement start 2016/4/5
complete BA0K2 23
complete BY0P2 3
stop HYT0KL 54
measurement restart start 2016/4/7
complete VA0L2 89
paused BY0P2 3
stop HYT0KL 54
actual measurement start 2016/4/7
paused VA0L2 89
paused BY0P2 3
stop HYT0KL 54
actual measurement restart start 2016/4/7
paused VA0L2 89
stop HYT0KL 54
actual measurement start 2016/4/7
actual measurement restart start 2016/4/7
paused VA0L2 89
stop HYT0KL 54
2 个评论
Walter Roberson
2016-5-8
What is the data type of this table? If it is character, are the fields separated by tab?
采纳的回答
Weird Rando
2016-5-8
In order for you to run this code you must convert your data (aka the table) into cell using the cell2table() and store it into variable named 'data'
result = {};
startRows = find(strcmp(data(:,1),'actual measurement'));
stopRows = find(strcmp(data(:,1),'stop'));
nloop = length(startRows);
for i = 1:nloop
sectionStop = find(startRows(i)<stopRows,1,'first');
if strcmp(data(startRows(i)+1:stopRows(sectionStop)-1,1),'complete') | strcmp(data(startRows(i)+1:stopRows(sectionStop)-1,1),'paused')
result = [result; data(startRows:stopRows(sectionStop),:)];
end
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!