代码之家  ›  专栏  ›  技术社区  ›  missingfaktor Kevin Wright

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

  •  6
  • missingfaktor Kevin Wright  · 技术社区  · 14 年前
    a = imread('autumn.tif');
    a = double(a); 
    [row col dim] = size(a);
    red = a(:, :, 1);
    green = a(:, :, 2);
    blue = a(:, :, 3);
    

    结肠是什么 : 最后三行的意思是?(以上片段来自Dhanjay Theckedath的“图像处理”。)

    1 回复  |  直到 14 年前
        1
  •  19
  •   Jonas    14 年前

    : ,在此上下文中表示“全部”。

    red = a(:,:,1)
    

    等于

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

    在哪里? end 由matlab自动替换为相应维度中的元素数。

    所以如果 a 是23×55×3阵列,

    a(:,:,1) 
    

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

    这意味着,这将从 . 因为RGB图像由红色、绿色和蓝色组成 plane (按此顺序) a(:,:,1) 是图像的红色部分。