nested for loop for 2d matrix cell
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I have a cell RDM {1x10} and every cell contains (512x1024) matrix. Now i have applied the following algorithm on one Matrix which i have to apply on all the matrix.
I get error on indexing every time. How can i implement that for all 10 matrices?
Tr = 10;
Td = 8;
Gr = 4;
Gd = 4;
% offset the threshold by SNR value in dB
offset = 1.4;
for i = Tr+Gr+1:(fft_size/2)-(Gr+Tr)
for j = Td+Gd+1:fft_size-(Gd+Td)
noise_level = zeros(1,1);
for p = i-(Tr+Gr) : i+(Tr+Gr)
for q = j-(Td+Gd) : j+(Td+Gd)
if (abs(i-p) > Gr || abs(j-q) > Gd)
noise_level = noise_level + 10.^(RDM(p,q)/10);
end
end
end
threshold = 10*log10(noise_level/(2*(Td+Gd+1)*2*(Tr+Gr+1)-(Gr*Gd)-1));
threshold = threshold + offset;
CUT = RDM(i,j);
if (CUT < threshold)
RDM(i,j) = 0;
else
RDM(i,j) = 1;
end
end
end
0 commentaires
Réponses (1)
Abdolkarim Mohammadi
le 22 Mai 2020
Modifié(e) : Abdolkarim Mohammadi
le 22 Mai 2020
I think the problem lies here
CUT = RDM(i,j);
if (CUT < threshold{o})
You said that RDM is a cell matrix; so CUT is also a cell matrix because it has been assigned using parantheses, not curly braces. But threshold{o} is double because you used implicit casting using curly braces. If this is the problem, then you must use
CUT = RDM{i,j};
This makes CUT a double and the comparison in the following line becomes possible.
4 commentaires
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!