Значение оператора двоеточия в MATLAB

Я наткнулся на некоторый синтаксис MATLAB с двоеточием, который я не совсем понимаю.

Первый вопрос:

Выражение: 0:pi/4:pi дает ответ: 0 0.7854 1.5708 2.3562 3.1416

Почему это так? Я думал, что оператор двоеточия используется как быстрый способ ссылаться на индексы, так что нам не нужно выписывать полный список. (например, 1:3 -> 1 2 3 )

Второй вопрос:

Как и выше, скажем, если у меня есть matrix X = [1 2 3 4 5 6 7 8 9] . Как я могу интерпретировать выражение X(:,1:3) ? В частности, что означает оператор двоеточия без левого и правого чисел?

Фактически a:b генерирует вектор. Вы можете использовать его как индекс только потому, что (...) принимает список, например

 octave-3.0.3:10> a = [1,4,7] a = 1 4 7 octave-3.0.3:11> b = [1,4,9,16,25,36,49] b = 1 4 9 16 25 36 49 octave-3.0.3:12> b(a) # gets [b(1), b(4), b(7)] ans = 1 16 49 

Теперь синтаксис a:b:c эквивалентен [a, a+b, a+2*b, ...] до c , например

 octave-3.0.3:15> 4:7:50 ans = 4 11 18 25 32 39 46 

который объясняет, что вы получаете в 0:pi/4:pi .


Одинокий : выбирает все оси (строка / столбец), например

 octave-3.0.3:16> a = [1,2,3;4,5,6;7,8,9] a = 1 2 3 4 5 6 7 8 9 octave-3.0.3:17> a(:,1) # means a(1:3, 1) ans = 1 4 7 octave-3.0.3:18> a(1,:) # means a(1, 1:3) ans = 1 2 3 

См. Официальный документ MATLAB о двоеточии (:) для подробностей.

Мои две гроши до ответа KennyTM.

Фактически скалярные и векторные переменные в MATLAB имеют 2 измерения. Скаляр имеет 1 строку и 1 столбец, а вектор имеет либо 1 строку, либо столбец. Просто попробуйте size(X) .

Оператор Colon (:) для индексации просто означает все . Синтаксис X(:,1:3) означает получение всех строк и столбцов от 1 до 3. Так как ваша переменная X имеет только 1 строку, вы получите первые 3 значения в этой строке.

  • Какова семантика «конца» в Matlab?
  • Возможно ли в Matlab явно форматировать выходные номера?
  • Случайные точки внутри параллелограмма
  • Как изменить значения нескольких точек в матрице?
  • Как построить неравенство
  • Как я могу читать RAW-образ в MATLAB?
  • Используйте вектор в качестве индекса для матрицы
  • Подавление выхода
  • Стабильный накопитель в MATLAB
  • Использование i и j в качестве переменных в Matlab
  • Повторить копии элементов массива: декодирование длины в MATLAB
  • Давайте будем гением компьютера.