Azzera filtri
Azzera filtri

Array Indice Error For Loop

2 visualizzazioni (ultimi 30 giorni)
HoboHarry
HoboHarry il 25 Ott 2018
Modificato: Stephen23 il 25 Ott 2018
Following code is coming up with error "Array indices must be positive integers or logical values."
Does someone know what is causing this. Trying to store each value into an array
z =@(x) tan(x);
h = 0.5
for x=1:0.5:10
Output (x) = (z(x+h)-z(x-h))/(2*h);
end
Array = [Output]
  1 Commento
Stephen23
Stephen23 il 25 Ott 2018
Modificato: Stephen23 il 25 Ott 2018
Note that your code can be trivially vectorized (a loop is a waste of time):
z = @tan;
h = 0.5;
x = 1:0.5:10;
y = (z(x+h)-z(x-h))./(2*h);
Learn how to write neat and efficient MATLAB code:

Accedi per commentare.

Risposta accettata

madhan ravi
madhan ravi il 25 Ott 2018
Modificato: madhan ravi il 25 Ott 2018
z =@(x) tan(x);
h = 0.5
x=1:0.5:10
Output = zeros(1,19) %preallocation for speed and efficiency
for i = 1:numel(x)
Output (i) = (z(x(i)+h)-z(x(i)-h))/(2*h);
end
Array = Output
  3 Commenti
Stephen23
Stephen23 il 25 Ott 2018
@madhan ravi: where is the array preallocation? What do those square brackets do? (Hint: nothing)
madhan ravi
madhan ravi il 25 Ott 2018
Thank you Stephen (edited now)

Accedi per commentare.

Più risposte (0)

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by