Array indices must be positive integers or logical values
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Brooks Corbett
am 17 Nov. 2019
Bearbeitet: Star Strider
am 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 Kommentare
Akzeptierte Antwort
Star Strider
am 17 Nov. 2019
Bearbeitet: Star Strider
am 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 Kommentare
Weitere Antworten (1)
Fabio Freschi
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!