細かいgriddataを荒いgriddataに直す方法
古いコメントを表示
緯度・経度ごとのgriddata(海面水温)があります(sizeは4500×3251の配列です)。
これを,緯度(2°間隔)・経度(5°間隔)の分解能へ粗くして,sizeを90×72の配列にしたいです。
代表となる緯度(2°間隔)・経度(5°間隔)のdataを中心として,その周辺のデータの代表値(平均値)として取り出したいです。
その際に,interp2がいいのか,それとも別な方法があるのか知りたいです。
よろしくお願いいたします。
回答 (1 件)
Hernia Baby
2022 年 4 月 7 日
0 投票
参考になる回答がこちらにありますので、こちら試していただくことをオススメします。
4 件のコメント
Hiroki Takeda
2022 年 4 月 8 日
ちょっと思ったのですが、
3251が素数なのでどのように分割すればいいかわからないです
とりあえずやり方のみ書きます
-----
データを作ります
clc,clear;
n = 4500;
m = 3251;
data = reshape(1:n*m,n,[])
区画を決めます
n1 = 90;
m1 = 72;
何分割にするか決めます
step = round([n m]./[n1 m1]);
cellに格納します
for ii = 1:n1
for jj = 1:m1
A{ii,jj} = data(step(1)*(ii-1)+1:step(1)*ii,step(2)*(jj-1)+1:step(2)*jj);
end
end
各区画で平均を取ります
B = cellfun(@(x) mean(x,["all"]),A)
-----
ここで問題になるのが、3251は72で割り切れないことです
つまり『あまりの列』が存在し、それらは切り捨てられます
(data(1,end)-A{1,end}(1,end))/n
11列分のデータが切り捨てられてしまいます
Hiroki Takeda
2022 年 4 月 12 日
Hernia Baby
2022 年 4 月 12 日
編集済み: Hernia Baby
2022 年 4 月 12 日
カテゴリ
ヘルプ センター および File Exchange で 大規模なイメージ ファイル についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!