for i = 1:n Li = i; total = sum(Li/n); Fi=Ri/sum(Li/n); end,其中Li为每一个像元对应的辐亮度值,怎么调整代码,MATLAB
时间: 2024-03-08 18:45:48 浏览: 25
如果你想要使用`for`循环计算每个像元对应的`Fi`值,你可以将`Li`的值存储在一个数组中,并使用一个循环遍历每个像元。以下是一个示例代码:
```matlab
% 读取影像
im = imread('image.tif');
% 获取影像尺寸和波段数
[height, width, num_bands] = size(im);
% 初始化Ri和Fi数组
Ri = zeros(height, width);
Fi = zeros(height, width);
% 循环遍历每个像元并计算Ri和Fi
for i = 1:height
for j = 1:width
% 计算Li的值
Li = double(squeeze(im(i,j,:)));
% 计算Li/n的值
Li_n = Li/sum(Li);
% 计算Ri的值
Ri(i,j) = sum(Li_n);
% 计算Fi的值
Fi(i,j) = Ri(i,j)/sum(Li_n);
end
end
```
在上面的代码中,我们首先使用`imread`函数读取影像,并使用`size`函数获取影像的尺寸和波段数。然后,我们初始化了`Ri`和`Fi`数组,并使用嵌套的`for`循环遍历每个像元。在每次迭代中,我们首先使用`squeeze`函数获取当前像元的波段值,并将其转换为`double`类型。然后,我们计算了`Li/n`的值,并使用`sum`函数计算了`Ri`的值。最后,我们计算了`Fi`的值。请注意,我们在计算`Li`和`Li/n`的值时,使用了`squeeze`函数来去除多余的维度,并将像元的波段值转换为`double`类型。
请注意,上述代码仅仅是一个示例,实际情况下你需要根据你的需求进行修改,例如,你需要根据你的实际情况确定`Ri`和`Fi`的计算方式。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![html](https://img-home.csdnimg.cn/images/20210720083451.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)