looping through total size and calculating standard deviation of each frame.

3 次查看(过去 30 天)
I want my loop to run from 1 to length of x. x contain total 67000 frames and I want that my code loop through each frame at a time and calculate the standard deviation of each frame from 1 to length of x.
folder = fullfile('C:\Users\vvb\Documents\datset\local');
ADS = audioDatastore(folder);
x=read(ADS);
[row,c]=size(x);
for j=1:x
totalframes(j)=j;
local=totalframes;
stdX=std(local);
end
So basically 'x' contains total 67000 frames and I want to loop through each frame of 'x' and calculate the standard deviation of each frame. I have written the above code but its not working.

回答(1 个)

Ameer Hamza
Ameer Hamza 2020-9-12
I don't have the audio toolbox, but something like this will work
folder = fullfile('C:\Users\vvb\Documents\datset\local');
ADS = audioDatastore(folder);
stdX = [];
while hasdata(ADS)
x = read(ADS);
stdX(end+1) = std(x);
end
  2 个评论
Ralph
Ralph 2020-9-12
This is not working I want my loop to run x number of times starting from 1 to length and store each value of x in a variable name local and than compute the standard deviation of each frame.
Ameer Hamza
Ameer Hamza 2020-9-12
This code runs on all the frames in ADS. Is there any error? If you want to store all the signals too then try something like this
folder = fullfile('C:\Users\vvb\Documents\datset\local');
ADS = audioDatastore(folder);
x = {};
stdX = [];
while hasdata(ADS)
x{end+1} = read(ADS);
stdX(end+1) = std(x);
end

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by