在Matlab上更改循环内的值

时间:2013-04-09 10:10:38

标签: matlab loops

我有一个问题,我怎么能在循环的每次迭代中使用不同的值。我有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 ));     输出(banda,1)=( nd1 );

第二次......

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

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

你知道我该怎么办?非常感谢提前,

1 个答案:

答案 0 :(得分:5)

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

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

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