フィルターのクリア

A very basic question about nested for loops

1 回表示 (過去 30 日間)
Negar
Negar 2013 年 10 月 26 日
回答済み: Bhavini Sarkar 2016 年 9 月 17 日
Hello all,
There are 2 persons, which each are pronouncing 9 vowels 10 times (I have in total 2*9*10 sound files). I've derived 2 features (F1 and F2) for each repetition of each vowel for all speakers, and now Im trying to compute mean and covariance for them . Here is where Im stuck: The sigma_est should result in 9 matrices of size 2x2 (as there are 9 vowels) , while it is just of size 2x2. It seems that the outset loop doesn't work properly to make 9 iterations of inner loops. What should I do in order to make it done? Thanks !
Here is the code:
Nvow = 9; % number of vowels
Nrep = 10; % number of repetition for each vowel
Nspeak = 2; % number of speakers in the group
for i=1:Nvow
for k=1:Nspeak
for j=1:Nrep
F1(i,k,j) = features_tst((k-1)*Nvow*Nrep+(i-1)*Nrep+j).value(1);
F2(i,k,j) = features_tst((k-1)*Nvow*Nrep+(i-1)*Nrep+j).value(2);
end
end
F11=reshape(squeeze(F1(i,:,:)),20,1);
F22=reshape(squeeze(F2(i,:,:)),20,1);
mu_est_F1 = sum(F11)/(Nrep*Nspeak);
mu_est_F2 = sum(F22)/(Nrep*Nspeak);
F=[F11 F22];
mu_est=[mu_est_F1 mu_est_F2];
sigma_est=cov(F);
end

採用された回答

sixwwwwww
sixwwwwww 2013 年 10 月 26 日
Dear Negar, re-write the last line as follows:
sigma_est{i} = cov(F);
Then sigma_est will contain 9 matrices of 2x2 size in a cell array. I hope it helps. Good luck!
  4 件のコメント
Negar
Negar 2013 年 10 月 27 日
Thank you so much, it really helped :)))
sixwwwwww
sixwwwwww 2013 年 10 月 27 日
You are welcome

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

その他の回答 (1 件)

Bhavini Sarkar
Bhavini Sarkar 2016 年 9 月 17 日
Hi Nagar, I also faced similar problem while using a nested for loop in a program . This is a very common mistake which is hard to debug.

カテゴリ

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