For loop to evaluate Root Mean Square
4 次查看(过去 30 天)
显示 更早的评论
For every row of C I want to find all the elements in column A that are in a time window (centered on the first element of column A at the first iteration) of 4 minutes. Second iteration is find all the elements in column A that are in a time window (centered on the second element of column A) of 4 minutes. And so on for all rows of C table.
After doing that, I want to delete all outputs that are equal mantaining one for type and compute root mean square on every output remaining.
Attached a dummy table for the code, I think this is relatively easy to do with a for loop but I don't know how to implement it, other solution are well accepted,
Thanks in advance
6 个评论
Rik
2020-4-11
Your code has multiple issues, so it will not run with the data you provided. Either provide working code (and explain how it should be sped up/optimized/extended), or provide a full example where you describe the steps you want to take in words.
Do you want to select all values in a 4-minute window, essentially performing a sliding window operation? If so, why would you need Tstart and Tstop?
回答(1 个)
Jeff Miller
2020-4-10
I don't really understand what you mean by conditions, but maybe you can get what you want by thinking of a 2-step process where the first step is to pick out the rows you want and the second step is to get the rms. This code snippet illustrates it:
stopTime = datetime(2020,1,5,8,15,0); % set these according to your conditions, possibly in for loop
startTime = datetime(2020,1,5,7,45,0);
wantRows = (T>startTime) & (T<stopTime);
y = rms(x(wantRows));
8 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!