Array indices must be positive integers or logical values
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Brooks Corbett
le 17 Nov 2019
Modifié(e) : Star Strider
le 17 Nov 2019
H = 0;
M = length(h);
for k=0:M-1
H = H + (h(k) * exp(-1i*2*pi*fd));
end
%fd and h come from a function call
0 commentaires
Réponse acceptée
Star Strider
le 17 Nov 2019
Modifié(e) : Star Strider
le 17 Nov 2019
The problem:
for k=0:M-1
The solution:
for k=1:M
In MATLAB, subscript indices begin at 1, not 0, and are defined as integers greater than 0.
It is more efficient to do this without the loop:
H = cumsum(h* exp(-1i*2*pi*fd));
or simply:
H = sum(h* exp(-1i*2*pi*fd));
0 commentaires
Plus de réponses (1)
Fabio Freschi
le 17 Nov 2019
Your index k starts from 0 and you are indexing h with k, so you are asking at the first iteration h(0). Matlab has 1-indexing so you get the error. I guess your for loop should be
for k = 1:M
...
end
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!