loss of data/missing elements in array after a for loop

Hello everyone,
I experienced a loss of data when comparing my input and ouput matrices.
for ch=1:32
TD_32_denoise_post_single_chan = TD_32_colon(:,ch);
[val_rms, idx_rms] = findpeaks(-TD_32_denoise_post_single_chan', ...
MinPeakHeight=mat_thr_filt_dat(ch));
idx_matrix_bool_mat_filt(idx_rms,ch) = true;
end
TD_32_colon is a 2584386x32 matrix
idx_matrix_bool_mat_filt is a 2584128x32 matrix
the total loss of data points is 258x32
I do not know where these points are located, and this issue prevents me from performing any operation as I get weird results.
Do you have any suggestion?

 採用された回答

Fangjun Jiang
Fangjun Jiang 2023 年 4 月 28 日
編集済み: Fangjun Jiang 2023 年 4 月 28 日

1 投票

If you don't pre-allocate idx_matrix_bool_mat_filt, this could happen. Do idx_matrix_bool_mat_filt=TD_32_colon before the loop.
clear c
a=rand(1,10);
index=find(a>0.5);
c(index)=true
c = 1×5 logical array
0 0 1 0 1

1 件のコメント

Enzo
Enzo 2023 年 4 月 28 日
it worked smoothly. Thanks for your help. Really appreciated

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

リリース

R2022b

質問済み:

2023 年 4 月 28 日

コメント済み:

2023 年 4 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by