Uma boa resposta veio de Rik Wisselink neste fórum: link
The reason for this is the unexpected order in which this statement is evaluated:
[1:3]' + 1:3 ([1:3]' + 1):3 ([1;2;3]+1):3 [2;3;4]:3 2:3 [2,3]
Adding the brackets forces the grouping before and after the colon operator (parentheses would have worked as well).
Stephen Cobeldick acrescenta que isso é explicado pelo fato de que +
tem uma prioridade maior que :
.
Steven Lord também comenta que a transição da linha 4 para 5 é explicada na documentação:
If you specify nonscalar arrays, then MATLAB interprets j:i:k as j(1):i(1):k(1).