在Matlab上更改循环内的值

use*_*688 0 matlab loops

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

size=size(HYP);
nrow= size(1);
ncolu= size(2);
nbands= size(3);
Run Code Online (Sandbox Code Playgroud)

我必须为每个波段做一个操作,然后获得结果,但我不知道如何为每次迭代自动更改其中一个值.我将尝试简化问题.这是我的循环.之前定义了值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
Run Code Online (Sandbox Code Playgroud)

所以,对于第一次迭代:

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

对于第二......

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

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

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

Chr*_*zig 5

不要尝试使用不同的变量名称.只要使用rad(1),rad(2)等再

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

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

  • 更改定义这些变量的代码.认真.这些变量名称只是在惹麻烦.(尽管如此,MATLAB常见问题解答会告诉您如何使用它们.) (6认同)
  • +1用于说服OP修改他现有的代码,而不仅仅是为他的问题提供一个简单的解决方法(在评论中:http://stackoverflow.com/questions/15899155/change-value-inside-a-loop-在与Matlab#comment22640793_15899273).给一个男人一些代码,你帮助他解决问题.教一个人来编程,你帮助他一辈子...... (3认同)