How do I calculate the RMS of every 5 values?

25 ビュー (過去 30 日間)
Shawn Imming
Shawn Imming 2016 年 11 月 3 日
編集済み: krishna teja 2023 年 7 月 28 日
Hello, I have a vector of 66000 values and I would like to know the root mean square (RMS) of every 5 values. Do I need a loop for this? Or is there some easier way to solve this?
Thanks in advance! Shawn

採用された回答

Guillaume
Guillaume 2016 年 11 月 3 日
編集済み: Guillaume 2016 年 11 月 3 日
If you mean you want the RMS of the first 5 values, followed by the RMS of the next 5 values, etc., then assuming your vector length is a multiple of 5 simply reshape it into columns of 5 elements:
rms = sqrt(mean(reshape(yourvector, 5, []) .^ 2));
If you mean you want a moving rms (rms of elements 1-5, rms of elements 2-6, etc.), then use movmean:
movrms = sqrt(movmean(yourvector .^ 2, 5));
  5 件のコメント
Julien Rodriguez
Julien Rodriguez 2022 年 1 月 7 日
Really Guillaume I don't know how to thank you properly.
You should be in the Avengers cause you're my little hero.
plot(love);
krishna teja
krishna teja 2023 年 7 月 28 日
編集済み: krishna teja 2023 年 7 月 28 日
awesome piece of code, Guillaume !!! have a great year
reduced my code execution from 1 sec to 0.025 sec !!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by