2017-03-26 6 views
1

forループに関する質問があります。私は、以下に示すように、ラスターマトリックス内の各セルの最短の「物理的距離」と「割り当て」を計算しなければなりませんが、コードを作成しましたが、距離計算のエラーが発生します.... 助けてください。距離計算のためのループプログラムの場合

Raster = [1 0 0 1 0 0; 0 0 0 0 0 0; 0 0 0 0 0 0; 0 0 1 0 0 1;0 0 0 0 0 0;0 1 0 0 0 0]; 
[i,j] = find(Raster==1); 
[nrow,nclon] = size(Raster); 
Dist = zeros(nrow,nclon); 
D = 1; 
% Cell Size = 1m 
for ii = 1:6 
    for jj = 1:6 
     E(ii,jj) = (((ii-i)^2 +(jj-j)^2)^0.5)*D 
    end 
end 

答えて

0

あなたはエラーメッセージを読んでください:あなたはおそらく何をしたいのか

Error using^
Inputs must be a scalar and a square matrix. 
To compute elementwise POWER, use POWER (.^) instead. 

Rasterに各1に要素単位の距離を計算し、それの最小値を取っている:

E(ii,jj) = min(((ii-i).^2 +(jj-j).^2).^0.5*D);