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。 (它代表图像数据,我只对该图像的一部分感兴趣。)我还不确定我需要哪个阵列,因为我无法绘制数据也不能裁剪它。感谢。
答案 0 :(得分: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的函数,除非你创建它。
答案 1 :(得分:0)
如何在matlab中裁剪数组是将它们切片,如下所示:
cropped_array=array(1:10,1:10)
你也可以做很酷的事情:
cropped_array=array(1:10:100,1:10:100)
将只将每个第10个变量放入列表中。