comportamiento del operador de dos puntos (:) con argumentos matriciales o vectoriales
Todos conocemos el operador de dos puntos de Matlab para crear una secuencia lineal, es decir
1:5 = [1 2 3 4 5]
Ahora descubrí que los argumentos del operador de dos puntos también se pueden aplicar a vectores o matrices. Sin embargo, no entiendo la definición detrás.
Ejemplos
[1 2 3 4]:5 == [1 2 3 4 5]
[1 2; 3 4]:3 == [1 2 3]
¿Por qué es esto?
El segundo argumento también puede ser vectorial o matricial.
En última instancia, me gustaría entender secuencias como
1:2:3:4:5
que es totalmente legal en matlab y [1 5]
por cierto!
La nota 1:2:3:4:5:6
se deja asociativa, es decir, se analiza como ((1:2:3):4:5):6
.
Entonces, ¿cuál es el comportamiento del operador de dos puntos con argumentos matriciales/vectoriales?
EDITAR: corrigió la declaración de asociatividad de izquierda.
La documentación para el operador de dos puntos dice:
Si especifica matrices no escalares, MATLAB interpreta j:i:k como j(1):i(1):k(1).
Su primer ejemplo se interpreta como 1:3
, el segundo como1:5
Las expresiones con más de dos :
se analizan asociativamente por la izquierda:
a:b:c:d:e==(a:b:c):d:e
.
>> 1:2:3:4:5
ans =
1 5