comportamiento del operador de dos puntos (:) con argumentos matriciales o vectoriales

Resuelto Andreas H. asked hace 9 años • 1 respuestas

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:6se 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.

Andreas H. avatar Mar 27 '15 16:03 Andreas H.
Aceptado

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
Daniel avatar Mar 27 '2015 10:03 Daniel