Подтвердить что ты не робот

Поведение оператора двоеточия (:) с матричными или векторными аргументами

Мы все знаем, что оператор толстой кишки matlab создает линейную последовательность, т.е.

1:5 = [1 2 3 4 5]

Теперь я обнаружил, что аргументы оператора двоеточия могут также применяться к векторам или матрицам. Однако я не понимаю определения.

Примеры

[1 2 3 4]:5 == [1 2 3 4 5]

[1 2; 3 4]:3 == [1 2 3]

Почему это?

Второй аргумент может быть также вектором или матрицей.

В конечном счете, я хотел бы понять последовательности, такие как

1:2:3:4:5 

который является полностью законным в matlab и [1 5] кстати!

Примечание 1:2:3:4:5:6 остается ассоциативным, то есть анализируется как ((1:2:3):4:5):6.

Итак, каково поведение для оператора двоеточия с матричными/векторными аргументами?

EDIT: исправлено утверждение левой ассоциативности.

4b9b3361

Ответ 1

документация для оператора двоеточия говорит:

Если вы укажете нескалярные массивы, MATLAB интерпретирует j: i: k как j (1): я (1): k (1).

Ваш первый пример интерпретируется как 1:3, второй как 1:5

Выражения с более чем двумя : анализируются лево-ассоциативными:

a:b:c:d:e==(a:b:c):d:e

.

    >> 1:2:3:4:5

ans =

     1     5