Поведение оператора двоеточия (:) с матричными или векторными аргументами
Мы все знаем, что оператор толстой кишки 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: исправлено утверждение левой ассоциативности.
Ответы
Ответ 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