如何在不同的TIF文件中基于非NAN值对TIF文件进行子集化?

时间:2016-01-25 22:29:16

标签: matlab

我有两个TIF文件,其尺寸完全相同,涵盖了美国的地理位置。

TF1主要具有NAN值,具有小面积的非NAN值

TF2在美国各地都有非NAN值。

我想

  1. 查找TF1中哪些单元格具有非NAN值(x = isnan(TF1))
  2. 在TF2中找到这些单元格位置的值
  3. 创建一个矩阵TF3,其尺寸与TF1 / TF2相同,并包含TF1的非NAN位置的TF2值
  4. 我该如何做到这一点?

    我发现了这个:http://www.mathworks.com/matlabcentral/answers/174603-replace-nan-with-corresponding-elements-in-another-array

    但无法申请我的用例

1 个答案:

答案 0 :(得分:1)

以下是您需要的代码:

indecesValid = ~isnan(TF1);

TF2(indecesValid) = TF1(indecesValid);

您只需使用TF2矩阵中的值设置要在TF1矩阵中设置的值。

为了获得TF1中非NaN位置的TF2值

TF3 = TF2 .* indecesValid;

我曾用于生成一些测试用例的代码:

TF1 = magic(5);
TF2 = nan(5);

TF2(1,1) = -1;
TF2(1,2) = -1;
TF2(1,4) = -1;
TF2(2,3) = -1;