Matlab 如何根据不同TIF文件中的非NAN值对TIF文件进行子集划分?

Matlab 如何根据不同TIF文件中的非NAN值对TIF文件进行子集划分?,matlab,Matlab,我有两个TIF文件,其尺寸完全相同,涵盖了我们的地理位置 TF1主要具有NAN值,而非NAN值的区域较小 TF2在整个美国都具有非NAN值 我想 查找TF1中哪些单元格具有非NAN值(x=isnan(TF1)) 在TF2中查找这些单元格位置的值 创建一个与TF1/TF2维度相同的矩阵TF3,该矩阵包含TF1非NAN位置的TF2值 我怎样才能做到这一点 我发现: 但无法应用到我的用例中以下是您需要的代码: indecesValid = ~isnan(TF1); TF2(indecesValid)

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

TF1主要具有NAN值,而非NAN值的区域较小

TF2在整个美国都具有非NAN值

我想

  • 查找TF1中哪些单元格具有非NAN值(x=isnan(TF1))
  • 在TF2中查找这些单元格位置的值
  • 创建一个与TF1/TF2维度相同的矩阵TF3,该矩阵包含TF1非NAN位置的TF2值
  • 我怎样才能做到这一点

    我发现:


    但无法应用到我的用例中

    以下是您需要的代码:

    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;
    

    到现在为止你都有什么?你被困在哪里?你能提供一些示例代码吗?你的.tif文件是彩色的吗?例如,您是变量
    TF1
    TF2
    大小
    HxW
    ,还是
    HxWx3
    ?如何在Matlab中获取此信息?你能告诉我命令吗?但是,当我使用imagesc(TF1)或imagesc(TF2)时,我会得到彩色图像。谢谢。但我不明白这一点:indecesValid=~isnan(TF2);我要查找TF2 fr中的值TF1中的非NAN值。你的不是也应该是TF1吗?或者我遗漏了什么…呜呜,不知什么原因我把你的TF1和TF2搞混了。谢谢。我得到一些输出。但我认为这不是我想要的。这将TF1的值放入TF2中。但是我想为那些TF1具有非NAN值的单元格保留TF2的值……希望我已经清楚了……这就是我在问题中提供的mathworks链接之间的区别。我不想替换值,只想将现有的TF2子集。哦,好的,我已经重新阅读了你的问题,我想我现在明白你想要什么了。检查我的最新编辑。