Time averaged values for each 100 iteration

1 回表示 (過去 30 日間)
m m
m m 2020 年 1 月 1 日
編集済み: Matt J 2020 年 1 月 1 日
i want to calculate the time averged value for each 100 iteration. knowing that my program is like this :
for m = 1:20000 %time iteration
for k = 1:1000
X(k)=
end(k)
if m>10000
%here i want to calculate the aceraged valu of X but for each 100 itaetation (m) i want to store the Xaveraged
for k = 1:1000
Xaveraged(k)=Xaveraged(k) + X(k)
end
end
end(m)

回答 (2 件)

Matt J
Matt J 2020 年 1 月 1 日
編集済み: Matt J 2020 年 1 月 1 日
Xaveraged=mean(reshape(X,100,[]));
  1 件のコメント
m m
m m 2020 年 1 月 1 日
thank you Matt for your rely.
but i dont intersttand Xaveraged=mean(reshape(X,100,[])); because Xaveraged depends on K, i want for each 100 m iteration store the values of Xaveraged in each K.

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


Matt J
Matt J 2020 年 1 月 1 日
編集済み: Matt J 2020 年 1 月 1 日
Maybe this is what you want.
X=nan(1000,20000); %pre-allocate
for m = 1:20000 %time iteration
for k = 1:1000
X(k,m)=... %store for all k and m
end
end
%compute after iterations all finished
Xaveraged=squeeze( mean(reshape(X,1000,100,[]),2) );
  1 件のコメント
Matt J
Matt J 2020 年 1 月 1 日
編集済み: Matt J 2020 年 1 月 1 日
Or, if you want to be more conservative with memory (but why??), then a variation is
X=nan(1000,100); %pre-allocate
Xaveraged=nan(1000,200); %pre-allocate
for s=1:200
for t=1:100
m=s*t; % time iteration number
for k = 1:1000
X(k,t)=...
end
end
Xaveraged(:,s)=mean(X,2);
end

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

カテゴリ

Help Center および File ExchangeBoundary Conditions についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by