我认为我问的问题不对,所以这个例子会让你更容易理解我的意思。
假设我有 2 个矩阵
A = [5,5; 7,7];
B = [2,2; 6,4];
还有另外 2 个矩阵,每个矩阵都与上述矩阵之一相对应。 可以说
A' = [7,7; 9,9];
B' = [1,1; 10,5];
我需要构建一个新的矩阵,它将检查 A' 和 B' 中的每个像素,选择最大值,然后转到相应的矩阵并从那里提取值。
在这个例子中我将得到这个 newMat
newMat = [5,5; 6,7];
使用循环很容易完成,有没有一种方法可以不使用循环来完成? 提前致谢!
最佳答案
您可以创建一个逻辑矩阵,其中 Aprime
大于 Bprime
,然后可用于从 A
或B
aprime_is_greater = Aprime > Bprime;
% Initialize C to B and replace values where Aprime was greater
C = B;
C(aprime_is_greater) = A(aprime_is_greater);
关于matlab - 从相应的最大矩阵中选取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34821730/