1
fname = dir('*sir');
[tmp, head] = loadsir(fname(1).name);
dayh99 = zeros(length(fname),size(tmp,1),size(tmp,2));  %41-100,1360,3600

% use temporary array to simplify 3d array creation
for i=1:length(fname)
  tmp = loadsir(fname(i).name);
  dayh99(i,:,:) = tmp;
end

私の興味のある分野は

   dayh99(i,:,:) = tmp;

tmpは基本的にアレイ1360X3600です。問題は、その配列全体をdayh99に格納する必要がないことです。(これは画像データを表しており、その画像の一部にのみ関心があります。)データをプロットしたりトリミングしたりすることができなかったため、配列のどの部分が必要かはまだ正確にはわかりません。ありがとう。

4

2 に答える 2

0

tmpの一部だけをdayh99に入れたい場合は、インデックスを使用してください。

j1 = 10
j2 = 12
k1 = 10
k2 = 12

dayh99 = zeros(length(fname), j2-j1, k2-k1)
dayh99(i, :, :) = tmp([j1:j2], [k1:k2])

これがバグかどうかもわかりませんが、作成していない限り、loadsirという関数はないと思います。

于 2012-11-20T19:52:05.380 に答える
0

matlabで配列を切り抜く方法は、次のようにスライスすることです。

cropped_array=array(1:10,1:10)

次のようなクールなこともできます。

cropped_array=array(1:10:100,1:10:100)

これにより、10番目ごとの変数のみがリストに追加されます。

于 2012-11-20T20:01:04.500 に答える