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

2 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Fangjun Jiang
Fangjun Jiang il 28 Apr 2023
Modificato: Fangjun Jiang il 28 Apr 2023
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

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by