How to implement a for loop over a specified range?
46 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Brian Aguilar
am 27 Feb. 2016
Kommentiert: Brian Aguilar
am 1 Mär. 2016
Outputs:
- t: time vector ranging from Start to End with a sampling rate of fs
- X: sum of sinusoids over the specified range
The code I am using for my outputs is:
t = linspace(Start,End,fs);
X=0;
for i=1:N
X = X + A(i)*cos(2*pi*f(i)*t + phi(i)) + B(i);
end
I keep getting an error: Attempted to access B(2); index out of bounds because numel(B)=1. Need help fixing it.
2 Kommentare
Walter Roberson
am 27 Feb. 2016
We do not know how you initialized B, or what it is intended to mean.
Did you happen to compute B using the "/" operator?
Akzeptierte Antwort
Walter Roberson
am 1 Mär. 2016
The code you posted would result in A and B being scalars (length 1) if N is empty. If N was not empty, then A and B would only be of length 2 anyhow.
If you are trying to initialize A to be a vector of length N then you would use something like
A = zeros(N, 1);
... but then it would be all zero, which doesn't sound very meaningful.
3 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!