本文介绍了以下冒号(:)在MATLAB语法中是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

结尾的是什么?三行是什么意思? (上面的片段来自Dhananjay Theckedath的图像处理。)

What does the colon : in the last three lines mean? (The above snippet is from "Image Processing" by Dhananjay Theckedath.)

推荐答案

,在此上下文中表示'all'。

:, in this context means 'all'.

red = a(:,:,1)

相当于

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

其中 end 由Matlab自动替换为相应维度中的元素数量。

where end is automatically replaced by the number of elements in the respective dimension by Matlab.

因此,如果 a 是一个23乘55乘3的数组,

So if a is a 23-by-55-by-3 array,

a(:,:,1)

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

这意味着,这将占用所有行,的第一个'平面'的所有列a 。由于RGB图像由红色,绿色和蓝色平面组成(按此顺序), a(:,:,1)是图像的红色成分。

That means, this takes all rows, all columns from the first 'plane' of a. Since a RGB image is composed of a red, green, and a blue plane (in this order), a(:,:,1) is the red component of the image.

这篇关于以下冒号(:)在MATLAB语法中是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 01:57