以下冒号(:)在MATLAB语法中是什么意思?

时间:2010-10-17 20:45:25

标签: matlab syntax image-processing

a = imread('autumn.tif');
a = double(a); 
[row col dim] = size(a);
red = a(:, :, 1);
green = a(:, :, 2);
blue = a(:, :, 3);

最后三行中的冒号:是什么意思? (上面的片段来自Dhananjay Theckedath的“图像处理”。)

1 个答案:

答案 0 :(得分:19)

:,在此上下文中意为“全部”。

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)是图像的红色成分。