1

我需要帮助摆脱“for”循环。现在我正在遍历一大堆数据,查找它的纬度和经度,然后找出数组中每个框的平均值是多少。我想我最大的问题是弄清楚如何摆脱 i=1:n 和 j=1:m 循环,这使我可以将我的数据网格分散到 lat 和 lon 框中。

注意:我得到“mu”,这是来自另一段代码的文件数,我只是使用 p=length(lat{1,k}) 来计算每个文件的长度。

n=36;
m=72;
counter=zeros(36,72);
sum=zeros(36,72);
average=zeros(36,72);

for k=1:mu
    p=length(lat{1,k});
    for i=1:n
        for j=1:m
            for u=1:p
                if (ge(lat{1,k}(u),i*5-95) && lt(lat{1,k}(u),i*5-90) && ge(lon{1,k}(u),j*5-185) && lt(lon{1,k}(u),j*5-180))
                    if lt(sfc{1,k}(u),0)
                        sfc{1,k}(u)=0;
                    end
                    sum(i,j)= sum(i,j) + sfc{1,k}(u);
                    counter(i,j)= counter(i,j) + 1;
                    average(i,j)= sum(i,j)/counter(i,j);
                end
            end
        end
    end
    average
end
4

0 回答 0