How to calculate a running value of a function for every 30 samples?

clear all;
clc;
Nt= 2000; % Total samples
d = randn(1,Nt);
ratioCompute = sum(d)/mean(d);
I need calculate this ratioCompute for every 30 samples like a sliding window.

Answers (1)

Nt= 50; % Total samples
d = randn(1,Nt);
ratioCompute = movmean(d, 30)
ratioCompute = 1×50
-0.1405 -0.1198 -0.1145 -0.0710 0.0116 0.0064 0.0398 0.0308 0.0168 0.0260 0.0339 0.0456 0.0118 0.0280 0.0412 0.0195 0.0005 0.0667 0.0811 0.0800 0.0896 0.1074 0.1868 0.1181 0.0611 0.1342 0.2335 0.2915 0.2876 0.2794

4 Comments

Hi, I am not looking for mean, so I cannot use movemean function. I need to compute sum()/mean() for every 30 samples.
will sum()/mean() = 30 for each window?
yes, here I was making a simple formulation. But actual formula which I will compute is different. Just am I looking to find a way to compute a ratio for every 30 samples.
They you try:
ratioCompute = movsum(d, 30) ./ movmean(d, 30);

Sign in to comment.

Categories

Tags

Commented:

on 1 Dec 2022

Community Treasure Hunt

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

Start Hunting!