0

我有一个问题,关于如何在每次循环中使用不同的值。我有一张有 145 个波段的图像。我计算大小、行数、列数和波段数

size=size(HYP);
nrow= size(1);
ncolu= size(2);
nbands= size(3);

我必须对每个波段进行操作,然后获得结果,但我不知道如何为每次迭代自动更改其中一个值。我将尝试简化问题。这是我的循环。值 rad1 是之前定义的。我需要在每个循环上使用之前定义的一些值(例如,band2 值 rad2、band3 rad3 ...)并为每个值提取一个结果(nd1 自动更改为 nd2 等)

output= zeros(nrow,ncolu,nbands);
for banda=1:nbands;
      nd1= -((3.141592*rad1)/-HYP2(:,:,1));
output(banda,1)= (nd1);
    end
end

因此,对于第一次迭代:

nd1 = -((3.141592* rad1 )/-HYP2(:,:, 1 )); 输出(班达,1)=(nd1);

对于第二...

nd2 = -((3.141592* rad2 )/-HYP2(:,:, 2 )); 输出(班达,2)=(nd2);

Rad1,rad 2... rad145 等是之前定义的。最后,输出将是一个 145 波段矩阵。

你知道我该怎么做吗?真的提前谢谢了

4

1 回答 1

5

不要尝试使用不同的变量名。只需使用rad(1)rad(2),然后

output= zeros(nrow, ncolu, nbands);
for banda=1:nbands;
   output(:,:,banda) = -((3.141592*rad(banda))/-HYP2(:,:,1));
end

(顺便说一下,您的初始化与output循环中的代码不匹配。)

于 2013-04-09T10:16:38.887 回答