このフォーラムは初めてなので、ご容赦ください。私はしばらくの間、このMatlabの問題に取り組んできました:
デジタル標高モデル (DEM) new_sub(x,y) を tif 形式で持っています。つまり、高さ (z) を含む x 行 y 列の行列です。この DEM の一部を異なる解像度でリサンプリングし、これを別のマトリックスで復元したいと考えています。これまでのところ、for ループを使用して DEM のさまざまな領域の解像度を変更し、結果を xyz ファイルに書き込んでいます。
xyz 1 1 123 1 2 233 1 3 231 2 1 235 2 2 531 2 3 452
など。コードは次のとおりです。
xmax = size(new_sub,2);
ymax = size(new_sub,1);
for k=1:200 % y
for l=1:xmax % x
fprintf(fid, '%d %d %d \n',l,xmax+1-k,new_sub(k,l));
end
end
% 1:4
for k=200/2+1:size(new_sub,1)/2
for l=1:size(new_sub,2)/2
fprintf(fid, '%d %d %d \n',l*2,ymax+2-k*2,new_sub(k*2,l*2));
end
end
これは機能しますが、かなり複雑なようです。さらに、リサンプリングされた領域をMatlab内の単一のマトリックスに保存することはできません。
マトリックスの特定の領域を異なる解像度でリサンプリングし、それらをすべてのリサンプリングされた領域を含む新しいマトリックスに書き込んでからファイルに書き込む、より効率的な方法はありますか? repmap を調べていたのですが、賢い使い方が思い浮かびませんでした!
あなたの助けは大歓迎です!
テオ