For loop to evaluate Root Mean Square
2 views (last 30 days)
Show older comments
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 Comments
Rik
on 11 Apr 2020
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?
Answers (1)
Jeff Miller
on 10 Apr 2020
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 Comments
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!