Что означает следующее двоеточие (:) в синтаксисе MATLAB? - PullRequest
6 голосов
/ 18 октября 2010
a = imread('autumn.tif');
a = double(a); 
[row col dim] = size(a);
red = a(:, :, 1);
green = a(:, :, 2);
blue = a(:, :, 3);

Что означает двоеточие : в последних трех строках?(Вышеприведенный фрагмент взят из «Обработки изображений» Дхананджея Текадата.)

1 Ответ

19 голосов
/ 18 октября 2010

:, в данном контексте означает «все».

red = a(:,:,1)

эквивалентно

red = a(1:end,1:end,1)

, где end автоматически заменяется количеством элементов всоответствующее измерение по Matlab.

То есть, если a - это массив 23 на 55 на 3,

a(:,:,1) 

равен

a(1:23, 1:55, 1)

Это означает, что он принимает все строкивсе столбцы из первой «плоскости» a.Поскольку RGB-изображение состоит из красного, зеленого и синего plane (в этом порядке), a(:,:,1) является красным компонентом изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...