Where is documentation for colon range of the form 1:vector?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Paul Hoffrichter
el 13 de Jun. de 2023
Comentada: Stephen23
el 13 de Jun. de 2023
I think the following code examples should result in a Matlab error and not be allowed to run. I think the code syntax should be disallowed by Matlab.
Where is the documentation that describes the use of the colon operator having the following form? All the examples in https://www.mathworks.com/help/matlab/ref/colon.html appear to use only scalar integers.
I was reviewing code that had code analogous to:
a = [ 3 9 44];
b = 1:a
I didn't recognize this form. The results appear to show that only the first element of a is used. Where is the documentation that allows this?
A quick experiment shows that the first element sof both vectors are used when creating a range:
a = [2 12 11];
b = [ 13 19 144];
c = a:b
0 comentarios
Respuesta aceptada
Steven Lord
el 13 de Jun. de 2023
The third item in the Description section of the documentation page to which you link describes what the colon, : operator does when its inputs are non-scalar.
"x = j:i:k creates a regularly-spaced vector x using i as the increment between elements. The vector elements are roughly equal to [j,j+i,j+2*i,...,j+m*i] where m = fix((k-j)/i). However, if i is not an integer, then floating point arithmetic plays a role in determining whether colon includes the endpoint k in the vector, since k might not be exactly equal to j+m*i. If you specify nonscalar arrays, then MATLAB interprets j:i:k as j(1):i(1):k(1)." [Emphasis added.]
4 comentarios
Stephen23
el 13 de Jun. de 2023
This should definitely be deprecated. And also that counter-productive column-iteration behavior of FOR.
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!