matlab数组索引为逻辑值,关于逻辑值进行数组索引的问题

本帖最后由 Mr.未 于 2015-12-3 21:44 编辑

我在运行一个程序的时候有一点问题想请教一下大家。程序能够运行,也不报错,但是有一点不是很明白。    其中有如下一条语句:

temp = sum(dbz(lat>=latst & lat< latst+step & lon>=lonst & lon

以上语句是为了实现:对满足 lat>=latst & lat< latst+step & lon>=lonst & lon

注: 程序已经运行过,得到的结果和预期的差别不大,但是差别不大不等于正确!因此,特请教各位,望给予解答!谢谢!

如果你对这个问题感兴趣,并且需要完成的程序和数据,请告诉我,我将上传供您测试。

=========    分割线   =================================================

因为整个程序内容较多,因此只上传有问题的函数部分

----------------------------------------------------------------------------------------------------------------------------------------

% 变量声明:

% latmin :  指定纬度范围的纬度下限  lonmin 经度下限

% latmax :  指定纬度范围的纬度上限  lonmax 经度上限

% LAT    :  存储指定范围纬度数据

% LON    :  存储指定范围经度数据

% lat 为一个二维数组,存储纬度信息

% lon 为一个相同大小的二维数组,存储经度信息

%  latmin = 30;   latmax = 34;

%  lonmin = 115;  lonmax = 121;

%  step = 0.1;

%  dbz 是一个和 lat lon相同大小的二维数组

function [LON,LAT,var] = gridize(dbz,lon,lat,lonmin,lonmax,latmin,latmax,step)

% 将上述数据进行格点化

% 变量声明 :

% idx    : 网格化后用于绘图的变量纬度方向格点数

% idy    : 网格化后用于绘图的变量经度方向格点数

% latst  : 网格化纬度起始点

% lonst  : 网格化经度起始点

idx = size(latmin:step:latmax,2);

idy = size(lonmin:step:lonmax,2);

lonst = lonmin;

var = zeros(idx,idy);

for s = 1:idy

latst = latmin;

if lonst <= lonmax - step

for t =1:idx

if latst <= latmax

temp = sum(dbz(lat>=latst & lat< latst+step & lon>=lonst & lon

var(t,s) = temp;

latst = latst + step;

end

end

lonst = lonst + step;

end

end

var = var/5;

lat1 = latmin:step:latmax;

lon1 = lonmin:step:lonmax;

[LAT,LON] = ndgrid(lat1,lon1);

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值