生成代码将270*397*3 uint8转化成270*397 double
时间: 2023-05-26 12:06:35 浏览: 90
以下是一种可能的方法,使用Matlab语言的循环遍历和类型转换:
```matlab
% 定义变量
rows = 270;
cols = 397;
channels = 3;
uint8_array = zeros(rows, cols, channels, 'uint8');
double_array = zeros(rows, cols, channels);
% 循环遍历并转换类型
for row = 1:rows
for col = 1:cols
for channel = 1:channels
uint8_val = uint8_array(row, col, channel);
double_val = double(uint8_val) / 255;
double_array(row, col, channel) = double_val;
end
end
end
```
其中,首先定义了变量`rows`、`cols`和`channels`表示原始数组的行、列和通道数;然后使用`zeros`函数创建了一个`uint8`类型的全零数组`uint8_array`和一个`double`类型的全零数组`double_array`;接下来,使用三层循环遍历原始数组中的每个元素,将其从`uint8`类型转换为`double`类型并除以255得到0到1之间的浮点数,最后将其赋值给目标数组`double_array`中对应的位置。
经过上述代码的运算,就得到了一个与原始数组大小相同,但数据类型为`double`的新数组`double_array`。
阅读全文