首页 > 解决方案 > 有没有办法在matlab中将某些纬度更改为零?

问题描述

因此,我正在尝试执行不适用于热带纬度的海洋学计算,因此,我需要通过将 30N 和 30S 之间的任何纬度变为零来删除它们。我试过这样做如下:

lat = th_lim(1):1/5.999:th_lim(2); 
lat_no_tropics(30>lat>-30) = 0;
lat_no_tropics(isinf(lat_no_tropics)|isnan(lat_no_tropics)) = 0; 

th_lim 是我正在使用的数据中的纬度限制(-90.0833 和 90.0833)。选择 1/5.999 以提供与将在计算中使用的其他遮罩相同的尺寸。但是,它的输出是 lat_no_tropics(尽管它具有正确的尺寸)只是一系列零,仅此而已。

如果有人能够阐明我哪里出错了,我将不胜感激。

标签: matlabnan

解决方案


您可以通过以下方式将范围内的值设置为零:

% create data
lat = (rand(100,1)*100)-50;

% thresholds:
th_lower = -30;
th_upper = 30;

% set data within thresholds to 0
lat((th_upper > lat) & (lat > th_lower)) = 0;

推荐阅读