gpt4 book ai didi

image - Matlab:根据引用位置用另一个矩阵替换一个矩阵中的值

转载 作者:行者123 更新时间:2023-12-02 07:31:40 26 4
gpt4 key购买 nike

我有两个 geotiff 图像(说“A”和“B”)作为矩阵导入到 Matlab 中,使用 Geotiffread。一个有不同的值,而第二个只有 0 和 255。我想要做的是根据它们的位置用其他图像(或矩阵)内的值替换所有 255。A 和 B 的大小不同,但它们的投影相同。

我试过这个:

A (A== 255)= B;

输出是错误:

??? In an assignment  A(:) = B, the number of elements in A and B must be the same.

否则,我也尝试了逻辑方法:

if A== 255
A= B;
end

什么也没有发生。

有没有办法根据特定的值和引用空间中的位置,用B的值替换A的值?

最佳答案

正如 darthbith 在他的评论中所说,您需要确保要替换的条目数与您输入的数值相同。

通过执行 A(A==255)=B,您试图将整个矩阵 B 放入等于 255 的 A 的子集中。

但是,如果如您所说,投影相同,您可以简单地执行 A(A==255) = B(A==255),假设 B 是大于或等于 A 的大小。

一些示例代码可提供概念证明。

A = randi([0,10],10,10);
B = randi([0,4],15,15);

C = A % copy original A matrix for comparison later
A(A==5) = B(A==5); % replace values
C==A % compare original and new

此示例代码创建两个矩阵,A 是 10x10,B 是 15x15,并将 A 中所有等于 5 的值替换为 B 中的相应值。通过执行 C==A 证明这是正确的 显示新矩阵和旧矩阵的变化位置,证明确实发生了替换。

关于image - Matlab:根据引用位置用另一个矩阵替换一个矩阵中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com