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])

我也不知道这是否是一个错误,但我不认为有一个名为 loadingir 的函数,除非你创建了它。

于 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 回答