matlab - 有没有办法在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(尽管它具有正确的尺寸)只是一系列零,仅此而已。
如果有人能够阐明我哪里出错了,我将不胜感激。
解决方案
您可以通过以下方式将范围内的值设置为零:
% 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;
推荐阅读
- android - 在 Gradle Android 中使用 Minify true 时应用程序崩溃
- ruby-on-rails - 如何使用 Rails 中的 ActiveRecords 范围根据列的属性过滤表
- java - look for value within two arrays
- c - 为什么我在这个 C 程序中出现段错误?处理 fscanf 和 printf
- html - 水平对齐两个块元素而不是手动使用“位置”
- networking - Kubernetes 网络问题桥接适配器
- java - 这个类的机制是什么?(JSON 解析)
- python - 如何在python中重定向方法调用?
- r - R,stringr - 从数据框中的行中替换多个字符
- flutter - AnimatedList 中最后一个元素的 RangeError