0

ループの各反復で異なる値を使用する方法について質問があります。145 バンドのイメージがあります。サイズ、行数、列数、バンド数を計算します

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

すべてのバンドに対して操作を実行し、結果を取得する必要がありますが、反復ごとに値の 1 つを自動的に変更する方法がわかりません。質問を単純化しようと思います。これが私のループです。値 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 に答える