Using variable as limiting index counts one less.

Hello fellow Mathworkers,
i encountered a strange behavior when reading from an array:
Let's say my array is A = zeros(1,100000) and i want B = A(1:50000) and C = A(50001:100000)
B and C are both 1x50000 double. That's what i want.
But when reading it like B = A(start:stop) and start = 1 and stop = 50000, B will be only 1x49999 double.
Is this a bug or am i missing something?
Thanks in advance!

4 comentarios

Awais Saeed
Awais Saeed el 21 de Ag. de 2021
Editada: Awais Saeed el 21 de Ag. de 2021
I am getting B = A(start:stop) = 1x50000 with start = 1 and stop = 50000.
Paul Werner
Paul Werner el 21 de Ag. de 2021
Propably i missed something. When typing it direktly in the command window, it works just fine. When using stop = 1/2e-5 my problem occures. So using round(stop) works for me.
Thank's for the sanity check!
Paul Werner
Paul Werner el 21 de Ag. de 2021
Should i close the question or is this useful for others?
Stephen23
Stephen23 el 21 de Ag. de 2021
Editada: Stephen23 el 21 de Ag. de 2021
A = zeros(1,100000);
start = 1;
stop = 50000;
B = A(start:stop)
B = 1×50000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
"Propably i missed something ... When using stop = 1/2e-5 my problem occures."
You did not take into account the behavior of binary floating point numbers.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Productos

Versión

R2019a

Etiquetas

Preguntada:

el 21 de Ag. de 2021

Editada:

el 21 de Ag. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by