Matlab中 double(a(:,:,1))是什么意思

如题所述

Matlab中double(a(:,:,1))表示将三维矩阵a的第1页的所有元素强制转换为double双精度数值类型。

对于二维矩阵,两个维度分别为行和列,而三维矩阵的维度为行、列、页(或者理解为层);a(:,:,1)就表示所有的行所有的列第1页,也就是第1页的所有元素。

a是一个3维矩阵,a(:,:,1)是第三维是1的一个二维矩阵,double(a(:,:,1))把此矩阵变为双精度。

扩展资料:

注意事项

在matlab中,为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型。 

如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。

解决办法如下: 

1、imshow(I/256); % 将图像矩阵转化到0-1之间 

2、imshow(I,[]); % 自动调整数据的范围以便于显示 

3、inshow(unit8(I)); % 转成unit8

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-31

Matlab中double(a(:,:,1))表示将三维矩阵a的第1页的所有元素强制转换为double双精度数值类型。

对于二维矩阵,两个维度分别为行和列,而三维矩阵的维度为行、列、页(或者理解为层);a(:,:,1)就表示所有的行所有的列第1页,也就是第1页的所有元素,参考如下形象的图示:

第2个回答  推荐于2018-03-07
a是一个3维矩阵,a(:,:,1)是第三维是1的一个二维矩阵,double(a(:,:,1))把此矩阵变为双精度本回答被网友采纳
相似回答