下一个代码是matlab代码。我想将此代码转换为Python代码,以便在Arcgis中使用它。
vals = zeros(size(a(:,:,1)));
[~,indexOfMax] = max(a,[],3);
for i=1:size(a,1)
for j=1:size(a,2)
vals(i,j) = b(i,j, indexOfMax(i,j));
end
end
我将简要解释一下这段代码。我有两个图像(名为 A 和 B)。两者都有 7 层,尺寸相同 (4169,6289,7)。首先我想找到A图像中最大值的位置,然后获取上一步从A图像中提取的B图像在最大值位置处的值。
非常感谢
最佳答案
vals = numpy.zeros((a.shape[0], a.shape[1]))
indexOfMax = numpy.argmax(a,2)
for i in range(a.shape[0]):
for j in range(a.shape[1]):
vals[i,j] = b[i,j, indexOfMax[i,j]]
还应该可以进行矢量化,而不是使用 for 循环。
小心,在Python中缩进很重要!保留第二个 for 循环之前和 vals 之前的缩进。
关于python - 如何将 matlab 代码转换为 python 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018042/