Hey all newbie to matlab, was wondering what I can do to fix the "for loop" code I have below, I am getting the "array indices must be positive integers." Thanks in advance!
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Brody Slusar
el 29 de Sept. de 2021
Respondida: DGM
el 29 de Sept. de 2021
clear;
counter = 0;
for t = -15:0.2:15;
y(t) = counter;
counter = ((t^4)-(3*t^2)+(2*t)-1)
end;
0 comentarios
Respuesta aceptada
DGM
el 29 de Sept. de 2021
Try this:
counter = 0;
t = -15:0.2:15;
y = zeros(size(t));
for k = 1:numel(t)
y(k) = counter;
counter = ((t(k)^4)-(3*t(k)^2)+(2*t(k))-1);
end
That said, you don't really need a loop to do this:
y2 = (t.^4 - 3*t.^2 + 2*t - 1);
y2 = [0 y2(1:end-1)];
immse(y,y2) % show that the two results are identical
0 comentarios
Más respuestas (1)
Kevin Holly
el 29 de Sept. de 2021
clear;
counter = 0;
y=[];
for t = -15:0.2:15;
y = [y; counter];
counter = ((t^4)-(3*t^2)+(2*t)-1);
end
The indices for the array cannot be a negative number and has to be an integer. You cannot have an array with a value indexed at let's say 1.5.
Let's look at the first 3 values in the array
y(1:3)
I can view the first value as such:
y(1)
Let's look at the third
y(3)
I cannot view a negative nor integer
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!